Можно предположить, что в определенном потоке регулярно опрашивать запущенные в данный момент процессы, чтобы узнать, содержится ли имя файла в заголовке процесса.
Что касается, например, файлов .docx, то в качестве названия процесса WORD будет иметь следующее имя:
Sample.docx - Microsoft Word
Вам потребуетсяиспользовать метод JNA с именем getAllWindowNames () для получения списка имен окон.Этот метод работает довольно хорошо.Когда Sample.docx обнаружен в полученном списке, запустите любой файл или файлы, которые вам нравятся.
Имейте в виду, однако, что ваше Java-приложение должно всегда работать в фоновом режиме, и из-за ассоциации файлов (как упоминалось в предыдущем посте) этот метод будет запускать файлы, связанные с Sample.docx независимо от того, как был запущен файл (с помощью двойного щелчка в проводнике Windows, ярлыка на рабочем столе, открытого из MS WORD и т. Д.).
Я действительно создал небольшойДемонстрационное приложение, которое делает именно то, что вы пытаетесь выполнить, но оно слишком велико для размещения здесь.Я не знаю учебника для такого рода вещей, это просто вопрос того, как это сделать ... если концепция понравится вам.
Да! ... большинство людей не хотели бы, чтобы подобные вещи танцевали в их Системах.