Я пытаюсь использовать библиотеку Джейкоба
для чтения значений реестра с удаленного компьютера, и я пытаюсь использовать GetStringValue
. следующий код
@Test
public void executeWmiSpecificCommand() {
//ActiveXComponent wmi = new ActiveXComponent("WbemScripting.SWbemLocator");
ActiveXComponent mActiveXWMI = new ActiveXComponent("winmgmts:\\\\localhost\\root\\default:StdRegProv");
int HKEY_LOCAL_MACHINE = 0x80000002;
Variant baseKey = new Variant(HKEY_LOCAL_MACHINE,true);
Variant keyName = new Variant("SOFTWARE\\myProgram",true);
Variant keyValue = new Variant("name",true);
Variant response = new Variant("",false);
Variant vCollection = mActiveXWMI.invoke("GetStringValue", baseKey, keyName, keyValue, response);
EnumVariant enumVariant = new EnumVariant(vCollection.toDispatch());
Dispatch item = null;
while (enumVariant.hasMoreElements()) {
item = enumVariant.nextElement().toDispatch();
String PropertyName = Dispatch.call(item, "sValue").toString();
System.out.println(PropertyName );
}
ComThread.Release();
}
Я, наконец, могу вызвать метод, но всегда получаю следующую ошибку
com.jacob.com.ComFailException: Обнаружено исключение COM: При вызове из: GetStringValue Описание: 80020010 / Invalid callee.
Я почти уверен, что я передаю правильные параметры и их типы, но я не знаю, что это за сообщение об ошибке