alle files anzeigen, die ein Prozess geöffnet hat
-
Ich brauche für Windows 7 eine Funktion, die mir für eine PID alle Files anzeigt, die der Prozess anzeigt. Falls ich zum Beispiel die PID von Visual Studio eingebe, soll er mir alle cpp und header Dateien anzeigen, die er gerade geöffnet hat. Hier hierfür jemand eine Idee?
-
@derlernende
Ich glaube nicht, dass Visual Studio die .cpp dauerhaft geöffnet hat.Die werden nur zum speichern und laden kurzfristig geöffnet.
-
@dirkb Vielen Dank. Ist das bei Textverarbeitungen wie office dasselbe?
Und gibt es eine Funktion, die mir zeigen könnte, welche Files ein Process seit Beginn oder ener bestimmten Zeitspanne einmal geöffnet hat.
Es sollte so funktionieren wie Handle tool von SysInternals https://docs.microsoft.com/de-de/sysinternals/downloads/handle
nur halt in c++, da das Programm leider keine API hat.
-
@derlernende
Office macht ein „lock“ auf die Datei.
Die ist, solange Office die offen hat, vorm Überschreiben geschützt.Die Sysinternal Tools werden wohl auch in C++ geschrieben sein.
-
Das ist der Code der Dir von einem Prozess aktive Handles zeigt.
http://www.cplusplus.com/forum/windows/95774/Andere Varianten sind:
Siehe https://stackoverflow.com/questions/6931972/how-to-find-which-process-has-a-handle-on-a-file-from-the-file-name
und auch https://www.nirsoft.net/utils/opened_files_view.html basiert darauf.Du kannst natürlich API hooking (DLL Injection) betreiben... das wäre wohl die sicherste Methode, also OpenFile zu hooken. Dazu gibt es massenweise im Internet... (und viel Schrott )
Ansonsten wäre das wohl eher ein WinAPI Thema.