So finden und schließen Sie alle geöffneten Dateigriffe auf einem abnehmbaren Laufwerk (vor dem Auswerfen)
-
13-09-2019 - |
Frage
Ich versuche, ein (virtuelles) abnehmbares Laufwerk auszuwerfen, und es schlägt fehl, da einige Dateihandles geöffnet sind, möglicherweise Explorer -Fenster. Was ist der beste Weg, um alle offenen Handles in Dateien auf diesem Laufwerk zu erhalten und sie zu schließen?
Ist es auch machbar (innerhalb des Benutzermodus), Prozesse zu finden, die dieses Laufwerk ablaufen, damit ich den Benutzer mit dem Prozessnamen warnen kann?
Idealerweise würde ich dies in einer Benutzer-Modus-App tun, anstatt Administratorrechte zu benötigen.
Ich verwende VC ++ in Visual Studio 2005 in einer MFC -App, aber Beispiele in jeder Sprache wären willkommen!
Lösung
Das Process Explorer Das Dienstprogramm kann nach offenen Griffen suchen, aber ich weiß nicht, ob dies ohne erhöhte Privilegien tun kann. Nach dem, was ich sammeln konnte, wird dies mit der API "Performance Counter" verwendet.
Ich denke, dieser Artikel macht das, was Sie brauchen, zählen Sie die laufenden Prozesse auf, zählen Sie die Griffe für jeden einzelnen und suchen Sie nach einem Dateihandle, in dem ein Pfad auf dem betreffenden Laufwerk verweist: