Как я могу посмотреть какой-либо конкретный файл / каталог на основе любого файла (расположенного в определенном каталоге, если база каталогов просматривает) при попытке открыть? - PullRequest
0 голосов
/ 28 мая 2018

Я хочу выполнить несколько задач на основе открытого целевого файла OPEN event. Например, Я наблюдаю Sample.docx, и когда пользователь пойдет на ОТКРЫТЬ , будет выполнено несколько последующих задач на основе его действия ОТКРЫТЬ .

Я искал в internet и нашел несколько решений , но основанных на MODIFICATION & DELETION операции файла.ни один из них не показывает основанный на OPEN action , который я на самом деле ищу.

Любой намек / предложение поможет мне.Спасибо.

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

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

Что касается, например, файлов .docx, то в качестве названия процесса WORD будет иметь следующее имя:

Sample.docx - Microsoft Word

Вам потребуетсяиспользовать метод JNA с именем getAllWindowNames () для получения списка имен окон.Этот метод работает довольно хорошо.Когда Sample.docx обнаружен в полученном списке, запустите любой файл или файлы, которые вам нравятся.

Имейте в виду, однако, что ваше Java-приложение должно всегда работать в фоновом режиме, и из-за ассоциации файлов (как упоминалось в предыдущем посте) этот метод будет запускать файлы, связанные с Sample.docx независимо от того, как был запущен файл (с помощью двойного щелчка в проводнике Windows, ярлыка на рабочем столе, открытого из MS WORD и т. Д.).

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

Да! ... большинство людей не хотели бы, чтобы подобные вещи танцевали в их Системах.

0 голосов
/ 28 мая 2018

Это специфическая функциональность операционной системы, а не то, что Java поставляется из коробки.Если вы работаете в Windows, вы должны использовать FileSystemWatcher, который существует в .NET, но если вам это нужно в Java, вам придется создавать собственные привязки, если библиотеки не существует.Скорее всего, этого не существует, так как не так много людей имели бы действительный сценарий использования для этого, и я не думаю, что сотрудники службы безопасности тоже были бы рады это увидеть.

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