Обнаружение или мониторинг при открытии файла

Есть ли способ определить, когда файл открыт другим процессом?
Я пробовал следующее

  • Поиск дескрипторов в процессах, чтобы узнать, открыт ли файл
    Это помогает только программам, которые держат файл открытым для использования. но не работает даже для простых приложений, таких как notepad.exe, notepad++, которые закрывают файл сразу после загрузки в память.
  • Постоянно проверяйте свойство Date Accessed файла, чтобы знать, что он был открыт при его изменении.
    Не работает, так как не меняется при открытии файла. например, я открыл и прочитал его в блокноте, но никогда не менял.
  • Используйте FileSystemWatcher для запуска события при открытии файла.
    Может работать только для таких событий, как Changed, Created, Deleted, Renamed.... и не определяет, когда файл открыт.


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


person Abraham    schedule 14.02.2021    source источник