Невозможно прочитать значение реестра, используя StdRegProv.GetStringValue, используя java jacob - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь использовать библиотеку Джейкоба

для чтения значений реестра с удаленного компьютера, и я пытаюсь использовать 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.

Я почти уверен, что я передаю правильные параметры и их типы, но я не знаю, что это за сообщение об ошибке

...