Swing AWTEventListener слушает стороннее приложение - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать инструмент, который закроет всплывающее окно в стороннем приложении (написано на Java).

Toolkit.getDefaultToolkit().addAWTEventListener(...);

Но при таком подходе я могу слушать только события из окон, созданных в моем собственном приложении. Есть ли способ получать события из других приложений? Может мне стоит запустить их из моего приложения?

1 Ответ

0 голосов
/ 21 марта 2019

Вы не можете напрямую прослушивать элементы пользовательского интерфейса в других процессах ... что, честно говоря, должно вас радовать, поскольку это может привести к множеству уязвимостей программного обеспечения.

Есть два способа общения между приложениями. Оба требуют определенного (в отличие от встроенного) дизайна для работы.

  1. Запуск 2-го приложения в Java через ProcessBuilder (или старые реализации для этого в System). Вы можете читать и писать для обработки в / выход / потоки ошибок. Конечно, необходимо настроить процесс так, чтобы он также передавал свои потоки
  2. Прослушайте ServerSocket в одном из приложений и подключитесь из другого. Когда вы делаете это, вам нужно разработать общий порт, а также общий протокол связи.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...