So finden und schließen Sie alle geöffneten Dateigriffe auf einem abnehmbaren Laufwerk (vor dem Auswerfen)

StackOverflow https://stackoverflow.com/questions/1862028

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!

War es hilfreich?

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:

Wie kann man Prozessgriffe aufzählen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top