Czy istnieje sposób na wyświetlenie listy wszystkich plików, które są aktualnie otwierane przez określony proces w systemie Windows?
Mam na myśli pliki, które otrzymały fopen
, ale nigdy nie otrzymały fclose
określonego procesu.
Próbowałem użyć Sysinternals Process Monitor, ale nie mogłem wymyślić, jak wyświetlić listę aktualnie otwartych plików - ale tylko wtedy, gdy nastąpi otwarcie.
Odpowiedzi:
Możesz wypróbować Sysinternals Process Explorer zamiast Process Monitor. Process Monitor jest przeznaczony do obserwowania, co procesy robią wtedy, gdy robią. Process Explorer służy bardziej do sprawdzania aktualnego stanu procesów; to Menedżer zadań, ale z około 10-krotną funkcjonalnością.
Sysinternals ma również
handle.exe
narzędzie wiersza polecenia, które informuje, które pliki otworzył proces.źródło
Sprawdź Process Explorer w Sysinternals.
Aby zobaczyć otwarte pliki dla procesu, wybierz proces z listy, wybierz opcję Widok -> Widok dolnego panelu -> Uchwyty. Wszystkie uchwyty typu „Plik” są otwartymi plikami.
Świetnym sposobem na sprawdzenie, która aplikacja ma otwarty plik, jest skorzystanie z opcji menu Znajdź-> Uchwyt lub DLL. Wystarczy wpisać nazwę szukanego pliku i nacisnąć „Wyszukaj”, aby znaleźć procesy z otwartym plikiem pasującym do wyszukiwanego ciągu.
źródło
Process Explorer firmy Sysinternals jest właściwie całkiem bezużyteczny, jeśli chodzi o obsługę uchwytów plików (w przeciwieństwie do bibliotek DLL itp.). Użyj Monitora zasobów Windows, kliknij kartę Procesor. Obok Powiązanych uchwytów wpisz nazwę pliku, a zobaczysz, kto go otworzył.
źródło
Jak słusznie powiedział Dave, użyj Process Explorera z SysInternals, oprócz tego, że oferują one różny zestaw narzędzi. Zamówienie: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
źródło