Я шукаю спосіб визначити всі файли, які відкрив процес у Windows. Це відрізняється від багатьох (вже відповідей) запитань тут, оскільки мені потрібно знати всі файли, які відкрив процес, а не лише ті, які він відкрив, коли я їх шукаю. Таким чином я уникаю відсутніх файлів, які повністю завантажені в пам'ять і потім закриті. Ось деякі речі, які я спробував, які не спрацювали:
- ProcExp та Handle від SysInternals (обидва лише список поточно відкритих файлів)
- ProcMon від SysInternals (з фільтрами назви процесу та операціями ReadFile та WriteFile). Цей мене здивував. Чому б це не працювало?
Мій тестовий випадок - це відкриття текстового файлу з флешки з Notepad, тому я не очікував, що ProcExp або Handle працюватимуть (оскільки Notepad читає все в пам'яті, а потім закриває файл). Схоже, ProcMon, як і слід, повинен працювати. Насправді, коли я редагую текстовий файл і зберігаю його, я бачу операцію WriteFile та шлях до мого текстового файлу. Однак, я можу побачити лише операції ReadFile, коли я відкриваю файл C:\Windows\Fonts\StaticCache.dat
. Можливо, це просто те, що конфігурація мого фільтра помиляється? Або інший інструмент буде краще працювати для мене?