| Autor |
Beitrag |
mazias
      
Beiträge: 19
|
Verfasst: Fr 03.01.03 21:25
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
      
Beiträge: 138
Win 98se und XP prof
D5Pers und D7Prof
|
Verfasst: 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
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Sa 04.01.03 19:42
das hab ich hier ( www.delphi-forum.de/...=5221&highlight= ) auch schon gefragt
Moderiert von Christian S.: Link: AUQ -> DF
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: 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 ??
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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
MFG
mimi
|
|
mazias 
      
Beiträge: 19
|
Verfasst: 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
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: 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
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: 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 !!!
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: 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
und: die funktion sagt nur, dass sich was geändert hat, aber leider nicht was, das muss man dann schon selber rausfinden....
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Di 28.01.03 18:45
also bei den ABFs kompos ( www.abfsoftware.com/...omponents/index.html FolderMonitor) gibts ne kompo, die sagt dir, wenn eine Änderung in einem Ordner erfolgt ist. aber den Dateinamen bekommt man nicht zurück !!!
oder ich bin nur zu blöd dazu 
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Di 28.01.03 21:05
werde ich mal testen, weil ich suche auch noch einer möglichkeit;)
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|