Huhu ich mal wieder!
Ich möchte einen Event auslösen sobald eine bestimmte Datei geschrieben/geändert wurde.
Mein erster Einfall sieht so aus:
Delphi-Quellcode:
procedure TFmain.timer_meldungsinhaltTimer(sender: TObject);
//Ein Timer der im 50ms Intervall prüft ob die Datei Meldungsinhalt geändert wurde
BEGIN
if FileExists(meldungsinhalt) then //existiert das file überhaupt?
begin
if GetFileLastAccessTime(meldungsinhalt) = now then
begin
Showmessage('Die Datei wurde geändert!');
end;
end;
END
Soderle. Auf meiner Entwicklungsmaschine funktionert das prima, sobald ich die Datei abspeicher kommt die Message.
Dann hab ich das Programm auf dem Zielsystem kopiert und laufen lassen. Von 20 Speicherversuchen der Datei registriert mein Timer vielleicht 2 ... wenn überhaupt. Verstehe ich nicht so ganz.
Ich hab das INtervall auch mal auf 1 gesetzt... aber das half auch nicht. Ausserdem mach ich mir das Sorgen um die Performance wenn da jede Millisekunde der Timer rödelt.
Nun die Frage: gibt es eine elegandere Methode um auf das Ändern einer Datei zu reagieren als den letzen Dateizugriff?