Entwickler-Ecke
Dateizugriff - Änderungen am Dateisystem überwachen
mazias - Fr 03.01.03 21:25
Titel: Änderungen am Dateisystem überwachen
Hat jemand ne Idee wie ich folgende Änderungen im Dateisystem überwachen kann: Dateien/Ordner Gelöscht; Erstellt; Umbenannt.
Ich suche schon ziemlich lange nach einer Lösung für das Problem, hab aber noch nichts gefunden.
Ich hab's mit FindFirstChangeNotification probiert, aber das sagt mir nur das sich was geändert hat, aber nicht was.
Dann hab ich's mit so einer versteckten Shell-Funktion probiert, aber die zeigt nur Änderungen an, die der Benutzer im Explorer macht.
Als letztes hab ich mir den Source von FileMon runtergeladen, aber da seh ich nicht richtig durch. Außerdem zeigt das Programm vielleicht hundert Ereignisse an, wenn man nur mal ne Datei umbenennt.
Das letzte was mir im Moment noch einfällt ist die API-Funktion ReadDirectoryChangesW. Hab ich noch nicht ausprobiert, ich glaube aber das es recht ähnlich zu FindFirstChangeNotification ist, bin mir aber nicht sicher.
Also wenn jemand ne Idee hat, auch wenn's nur ne kleine ist, würde ich mich sehr Freuen.
Tschau
-Matze
Pierre - Sa 04.01.03 00:06
Hallo,
in den FAQs "Dateien" findest du das rekursiv Suchen nach Ordner und Dateien. Wenn Du dort beim Aufruf der Funktion "c:\" eingibst, dann
wird dir in einer listbox komplett C: aufgelistet. Dieses kannst Du speichern und nach Deinen Veränderungen wiederholen. So bekommst Du zwei Textfiles (vorher und nachher). Diese kannst Du dann in zwei arrays laden und vergleichen. In die o.g. Funktion kannst Du noch die Größe, die Eigenschaft usw. aufnehmen, dann findest Du noch mehr Veränderungen.
Gruß Pierre
mimi - Sa 04.01.03 18:31
Ist das nicht zu langsamm ?
Ich bin mir sicher das es Programm botschaften gibt die das programm an windows sendet. Wenn man diese Botschaften abfangen könnten würde man sicher schneller zum Ziel komme oder ?
aber die frage ist ja. Gibt es so eine botschaft wenn ja wie heißt sie ?
MFG
mimi
mimi - Sa 04.01.03 21:51
Das meine ich doch garnicht.
Ein Programm sendet doch nachrichten an windows oder nicht ?
und die nachrichten könnte man doch abfangen oder nicht ?
MFG
mimi
matze - Sa 04.01.03 22:15
ja stimmt.
aber wie macht das denn filemon ?? schickt denn windoof nicht ne msg raus, wenn irgendwas am dateisystem gemacht wird ??
mimi - Sa 04.01.03 22:25
daovn rede ich doch.
Filmon(oder wie das coole programm heißt) aber ich selbst. Und ich wollte es auch schonmal schreiben;)
ich vermute mal das es für alle befehle auf das Dateisystem eine eigene nachricht gibt.
das heißt: du musst herrausfinden welche nachrichte das sind.
und wie man sie unter Delphi abfangen kann.
und schon hast du dein Ziel erreicht ;)
ich wollte z.B funktionen einbauen die es dir erlauben nur bestimmte programm zu überwachen. Weil wenn du nur ein bestimtes Programm beobachten willst ist das mit Filemon zimlich schwer :cry:
MFG
mimi
mazias - So 05.01.03 04:38
also Filemon kriegt das über einen sys Treiber mit.
Das mit den Listboxen ist zu langsam, ich brauchs am besten in Echtzeit.
Windows schickt zwar ne Menge Messages, aber keine die das Dateisystem betreffen. Jedenfalls nicht automatisch, vielleicht muss man ja vorher nen Api-Befehl senden. Aber welchen?
...irgendwie muss es doch gehen...
tschö,
Matze
MathiasH - So 05.01.03 11:46
im Entwickler stand mal sowas wie das zu machen ist, kann aber sein, dass das Beispielprogi für C++ ist schau einfach mal im Archiv nach, müsste ungefähr die jan Ausgabe sein ich hab sie grad nicht zur hand...
MathiasH
matze - So 05.01.03 12:43
wenn eine lösung gefunden wird, wäre ich sehr glücklich, wenn ihr die hier schreibt oder ein tut oder so was draus macht !!!
MathiasH - So 05.01.03 20:00
hab mich getäuscht, war Toolbox 1/01 auf Seite 42/43 Artikel >>Big Brother<< für Verzeichnisse, ihr habt richtig geraten, es geht (wie auch anders) mit der Win-Api aber eins sag ich gleich, simpel iss es nicht :P
und: die funktion sagt nur, dass sich was geändert hat, aber leider nicht was, das muss man dann schon selber rausfinden....
MathiasH
mimi - Di 28.01.03 21:05
werde ich mal testen, weil ich suche auch noch einer möglichkeit;)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!