У меня есть система с интерфейсом Windows COM, чтобы к ней могли подключаться внешние приложения, и она имеет следующие детали
Интерфейс: InterfaceName Флаги: (1234) Dual OleAutomation Dispatchable GUID: {ABCDEFG-ABCD-1234-ABCD-ABCDE1234} Я хочу подключиться к этому интерфейсу через приложение Java Spring, оно отправит запрос на этот интерфейс и обработает ответ .
Я пытался использовать следующий код
ActiveXComponent mf = new ActiveXComponent("ApplicationName.InterfaceName");
try {
Dispatch f2 = mf.QueryInterface(" {ABCDEFG-ABCD-1234-ABCD-ABCDE1234} ");
Dispatch.put(f2, 201, new Variant("Request String"));
} catch (Exception e) {
e.printStackTrace();
}
Исполняемый файл открывается, но не делает то, что я хочу. Я хочу сделать следующее.
Как мне убедиться, что мой интерфейс зарегистрирован, я могу видеть его в
Computer\HKEY_CLASSES_ROOT\ApplicationName.InterfaceName
Использование
ActiveXComponent
открывает экземпляр приложения, который не требуется. Приложение уже запущено.вызвать интерфейс с помощью dispid.
Получите ответ от call/put/invoke (что лучше всего подходит для моего требования?) и обработайте ответ.
Я впервые работаю с JAVA-COM_Interface и не имею большого опыта работы с ним, также я мог найти для него очень мало примеров в Интернете, и я попытался преобразовать пример, который я нашел для своего проекта, также я не уверен, подход, который я принимаю, чтобы назвать интерфейс правильным или нет, я был бы рад, если вы можете помочь!