Определить процесс с помощью файла - PullRequest
19 голосов
/ 19 декабря 2008

Я пытался выяснить, как программно идентифицировать процесс, имеющий блокировку для определенного файла. Я искал через Win32 API и WMI, но пока ничего не могу найти. Я знаю, что это возможно - Sysinternals может перечислить каждый ресурс, доступ к которому заблокирован каждым процессом в системе.

Кто-нибудь может дать мне подсказку?

Ответы [ 7 ]

16 голосов
/ 12 января 2013

Вы можете использовать handle.exe от Sysinternals .

Что-то вроде:

> handle /accepteula C:\path\to\directory
...
program.exe           pid: 1234   type: File           2E4: C:\path\to\directory
...

Благодаря https://stackoverflow.com/a/599268/367916.

4 голосов
/ 13 августа 2014

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

3 голосов
/ 20 мая 2016

Вы можете использовать Process Explorer от Microsoft

  1. Скачать, распаковать и запустить Process Explorer
  2. Нажмите Найти меню и затем нажмите Найти дескриптор или DLL ... или нажмите CTRL + F
  3. Скопируйте и вставьте путь к заблокированной папке файла
  4. Нажмите Поиск , вы можете убить процесс из основного Process Explorer Окно
2 голосов
/ 19 декабря 2008

Из-за того, как работает Process Explorer, я подозреваю, что вам нужно найти способ найти файловые дескрипторы, прикрепленные к данному процессу, и что вам нужно будет получить этот список для каждого процесса в системе и найдите в нем свой файл.

0 голосов
/ 27 июля 2009

Эта статья может быть полезна для вас.

Похоже, вы вынуждены искать в списке файлов для каждого процесса в системе, используя недокументированные функции в ntdll.dll.

0 голосов
/ 19 декабря 2008

WhoLockMe - хорошее расширение для проводника правой кнопкой мыши.

0 голосов
/ 19 декабря 2008

Я не знаю в Windows, но кому-то может быть полезно знать, что в Linux вы можете использовать команду lsof или просто искать в папках / proc / PROCESS_ID / fd и видеть какой процесс открыл файл.

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