Есть ли способ перечислить все файлы, которые в настоящее время открываются определенным процессом в Windows?
Я имею в виду файлы, которые получили fopen
, но не получили fclose
по определенному процессу.
Я пытался использовать Sysinternals Process Monitor, но я не мог понять, как составить список текущих открытых файлов - но только когда происходит открытие.
Ответы:
Вы можете попробовать Sysinternals Process Explorer вместо Process Monitor. Process Monitor предназначен для наблюдения за тем, что процессы делают так, как они делают тогда. Process Explorer больше подходит для просмотра текущего состояния процессов; это диспетчер задач, но с функциональностью примерно в 10 раз.
У Sysinternals также есть
handle.exe
инструмент командной строки, который сообщает вам, какие файлы открыты у процесса.источник
Проверьте Process Explorer от Sysinternals.
Чтобы просмотреть открытые файлы для процесса, выберите процесс из списка, выберите пункт меню Вид-> Вид нижней панели-> Ручки. Все дескрипторы типа «Файл» являются открытыми файлами.
Кроме того, отличный способ узнать, в каком приложении открыт файл, - это использовать пункт меню Find-> Handle или DLL. Просто введите имя файла, который вы ищете, и нажмите «Поиск», чтобы найти процессы с открытым файлом, соответствующим строке поиска.
источник
Process Explorer от Sysinternals на самом деле довольно бесполезен, когда дело доходит до работы с файловыми дескрипторами (в отличие от DLL и т. Д.). Используйте Windows Resource Monitor, нажмите на вкладку CPU. Рядом со связанными дескрипторами введите имя файла, и вы увидите, у кого он открыт.
источник
Как правильно сказал Дейв, используйте Process Explorer из SysInternals, кроме того, они предлагают различный набор утилит. Оформить заказ: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
источник