Existe uma maneira de listar todos os arquivos atualmente abertos por um processo específico no Windows?
Quero dizer, arquivos que possuem um fopen
, mas nunca obtêm um fclose
por um processo específico.
Tentei usar o Sysinternals Process Monitor, mas não consegui descobrir como listar os arquivos abertos atuais - mas apenas quando a abertura acontece.
Respostas:
Você pode tentar o Sysinternals Process Explorer em vez do Process Monitor. Process Monitor é o design para observar o que os processos fazem como fazem então. O Process Explorer é mais para ver o estado atual dos processos; é o Gerenciador de tarefas, mas com cerca de 10x a funcionalidade.
A Sysinternals também possui
handle.exe
qual é uma ferramenta de linha de comando que informa quais arquivos um processo foi aberto.fonte
Confira o Process Explorer da Sysinternals.
Para ver os arquivos abertos para um processo, selecione um processo na lista, selecione a opção de menu Exibir-> Vista inferior do painel-> Alças. Todas as alças do tipo "Arquivo" são os arquivos abertos.
Além disso, uma ótima maneira de descobrir qual aplicativo tem um arquivo aberto é usando a opção de menu Localizar-> Identificador ou DLL. Basta digitar o nome do arquivo que você está procurando e clicar em "Pesquisar" para encontrar os processos com um arquivo aberto correspondente à string de pesquisa.
fonte
O Process Explorer da Sysinternals é realmente bastante inútil quando se trata de lidar com identificadores de arquivos (em oposição a DLLs, etc.). Use o Windows Resource Monitor, clique na guia CPU. Ao lado de Alças associadas, digite o nome do arquivo e você verá quem o abrirá.
fonte
Como Dave disse, com razão, use o Process Explorer da SysInternals, além de oferecer um conjunto variado de utilitários. Checkout: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
fonte