межпроцессного взаимодействия - PullRequest
1 голос
/ 15 июля 2011

Я хотел знать, возможно ли для моего приложения, написанного на Java, отслеживать события (например, щелчок по меню файла или меню редактирования) в других сторонних приложениях, таких как редакторы, офисные приложения и т. Д. *

Мое приложение должно работать в фоновом режиме, и оно должно быть способно захватывать и изменять события в настоящее время сфокусированных приложений, которые могут не обязательно быть приложениями Java.

Например: если пользователь щелкает файл -> сохранить как параметр в Microsoft Word, тогда мое приложение должно иметь возможность получать эти два события, а также иметь возможность автоматизировать эти события всякий раз, когда необходимо ..

Пожалуйста, помогите

Заранее спасибо

1 Ответ

1 голос
/ 15 июля 2011

Я никогда не делал этого на Java, но так как вы имеете дело с Win32, я могу по крайней мере предложить нативную часть. То, что вы ищете, это подключить другие процессы в вашей системе. Для этого вам нужно написать собственную DLL. Это обычная техника, и вы легко найдете много информации о ней. Хорошей отправной точкой будет Использование хуков от MSDN.

После того, как вы внедрили DLL во все другие процессы в системе, вам нужно будет выяснить, как определить те, которые вас действительно интересуют. Как вы это сделаете, зависит от того, что вы на самом деле пытаетесь сделать , Чтобы лучше понять, какие сообщения отправляются при различных действиях, вы можете использовать Spy ++ , который поставляется с VS.

Наконец, вам нужно настроить связь между вашей нативной DLL и вашей Java-программой. Это та часть, с которой я не знаком: вам придется использовать JNI . К счастью, JNI - это хорошо освещенная тема, и вы можете найти множество предложений на этом сайте.

...