Подтвердить что ты не робот

Определить процесс, используя файл

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

Может кто подскажет мне подсказку?

4b9b3361

Ответ 3

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

Ответ 5

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

  • Загрузите и распакуйте и запустите Проводник процессов
  • Нажмите Найти, а затем нажмите Найти дескриптор или DLL... или нажмите CTRL + F
  • Скопировать и вставить путь к заблокированной папке файла
  • Нажмите Поиск, вы можете убить процесс из главного окна Проводник

Ответ 6

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

Ответ 7

WhoLockMe является хорошим расширением проводника Windows.

Ответ 8

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

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