2015-11-25 9 views
0

Я пытаюсь использовать autoit с java, и установил AHK и мост jacob для autoitx4java.AutoItx. У меня есть dac jacob (jacob-1.18-86x.dll), хранящийся в windows/syswow64. Когда я пытаюсь скомпилировать программу (импорт import java.text.SimpleDateFormat; import java.util.Date; import autoitx4java.AutoItX;), я получаю ошибкуНе могу понять, как зарегистрировать dll, чтобы избежать «Невозможно получить объект clsid из progid»

Exception in thread "main" com.jacob.com.ComFailException: Can't get object clsid from progid 
at com.jacob.com.Dispatch.createInstanceNative(Native Method) 
at com.jacob.com.Dispatch.<init>(Dispatch.java:99) 
at com.jacob.activeX.ActiveXComponent.<init>(ActiveXComponent.java:58) 
at autoitx4java.AutoItX.<init>(AutoItX.java:181) 
at MainTest.login(MainTest.java:126) 
at MainTest.setadmin(MainTest.java:181) 
at MainTest.runbasic(MainTest.java:21) 
at MainTest.main(MainTest.java:15) 

После поиска, я думал, что это может быть, что длл не был зарегистрирован, например, на How to create an object using JACOB, но это не сработало После ввода команды регистрации оттуда я получаю сообщение «RegAsm: error RA0000: Failed to load» c: \ windows \ syswow64 \ jacob-1.18-x86.dll, потому что это не сборка vaild .NET. Также попробовали " regsvr32 jacob-1.18-x86.dll "по-другому, чтобы зарегистрировать вне ответа выше, но это заставило меня загрузить модуль jacob-1.18-x86.dll, но точка входа DllRegisterServer не найдена. что «jacob-1.18-x86.dll» является допустимым файлом DLL или OCX и повторите попытку. Любые идеи?

Редактировать: Кто-то предположил, что это было для AutoIt, а не для autohotkey. Это исправлено в вопросе и тегах. Спасибо,

+3

Вы уверены, что это для AutoHotkey, а не для AutoIt? – Forivin

+0

И проверить это для вашей ошибки: http://www.javaquery.com/2013/12/comjacobcomcomfailexception-cant-get.html – Forivin

+0

Моя компания блокирует страницу просмотра OLE для загрузки. На что он пытается добраться? – user3476534

ответ

0

Только что установил autoit-v3-setup.exe и он сработал.

1

Просто зарегистрировавшись только с помощью библиотеки AutoITX3 DLL, проблема была решена. Для Win32: AutoItX3.dll и Win64: AutoItX3_x64.dll

регистр с помощью команды: regsvr32 AbsolutePathOfRequiredDLLFile

+0

Это работает для меня. Мне нужно было запустить эту команду как администратор. Спасибо. – Sadique