Ordner in Windows überwachen lassen
-
ich möchte ein Programm schreiben, der einen Ordner überwacht, und notiert, wenn ein Benutzeraccount Dateien, vom Ordner löscht oder ändert.
ist sowas in C möglich?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ja, ReadDirectoryChangesW:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465%28v=vs.85%29.aspx
Du kannst aber auch in Windows das entsprechende Auditing einschalten, dann loggt Windows das auch selber. Weiß jetzt aber nicht, wie detailliert man das konfigurieren kann, habs mir nie genauer angeschaut.
-
Klar geht das mit C, bzw. über die WinApi.
Obwohl dies nicht einfach wird. Denn Du müsstest wohl die (nicht dokumentierte) Funktion NtQueryDirectoryFile() hooken, und dass Systemweit.
Kein Thema für Anfänger...edit:ok gibt doch ne Api Funktion...
edit2:wenn Du aber die Kontrolle über die Directory zugriffe oder verånderungen haben möchtest kommst Du ohne denn Hook nicht aus...
-
Vielen dank für die antworten:))
-
-lowbyte- schrieb:
edit2:wenn Du aber die Kontrolle über die Directory zugriffe oder verånderungen haben möchtest kommst Du ohne denn Hook nicht aus...
Was meinst du mit Directory Zugriffen? Wenn dich ein bestimmtes Verzeichnis interessiert, dann willst du ja wissen, was in dem Verzeichnis passiert und nicht mit dem Verzeichnis selber. Was soll damit denn schon passieren? Wenn du wissen willst, ob das Verzeichnis mal zwischenzeitlich gelöscht und neuangelegt wurde, dann überwachst du halt auch noch das Verzeichnis drüber.
-
Ich meinte auch nur wenn er zbso. nicht möchte das ein bestimmtes Directory oder File gelöscht haben möchte... Aber das liese sich dann auch über acls lösen. NtQueryDirectoryFile() wäre natürlich die falsche funktion doe gehookt werden müsste um dies zu verhindern.
-
Gehookt werden muss da eigentlich nichts.
Die entsprechende Funktionen der WinAPI istHANDLE WINAPI FindFirstChangeNotification
bzw.
BOOL WINAPI ReadDirectoryChangesW
Die Beschreibung ist hier
http://msdn.microsoft.com/en-us/library/aa364417.aspxViel Spaß
-
noergel schrieb:
Gehookt werden muss da eigentlich nichts.
Die entsprechende Funktionen der WinAPI istHANDLE WINAPI FindFirstChangeNotification
bzw.
BOOL WINAPI ReadDirectoryChangesW
Die Beschreibung ist hier
http://msdn.microsoft.com/en-us/library/aa364417.aspxViel Spaß
Ja wenn er nur Ordner überwachen möchte! Aber nicht wenn er Änderungen verhindern möchte. Aber das war auch nicht seine Frage... sorry für mein abstecher.
-
Das wollte der TS:
ich möchte ein Programm schreiben, der einen Ordner überwacht, und notiert, wenn ein Benutzeraccount Dateien, vom Ordner löscht oder ändert.
ist sowas in C möglich?Das habe ich vorgeschlagen:
HANDLE WINAPI FindFirstChangeNotification BOOL WINAPI ReadDirectoryChangesW
Lesen lernen. Das schützt vor selbstabstechen