hoi,
ich benutze folgenden Funktion in einem thread.
(die Funktion habe ich von
hier)
Delphi-Quellcode:
function RegisterDirectoryWatch(Params:Pointer): Boolean;
var
hHnd : THandle;
dwWait : DWORD;
Parameter : TThreadParameter ;
begin
Parameter := PThreadParameter(Params)^ ;
Dispose(PThreadParameter(Params));
Result := False ;
if (Parameter.Pfad <> EmptyStr) then // bei gueltiger Pfadangabe ...
begin
hHnd := FindFirstChangeNotification ( PChar(Parameter.Pfad), // Pfad
False, // keine Unterverz.
FILE_NOTIFY_CHANGE_FILE_NAME); // Flag
if hHnd = INVALID_HANDLE_VALUE then // bei Fehler -> Abbruch
begin
Result := False;
end
else
begin
while TRUE do // warte
begin
dwWait := WaitForSingleObject(hHnd, INFINITE);
case dwWait of
WAIT_OBJECT_0: // hab was gefunden
begin
if FileExists( Parameter.Pfad + Datei) then // ist die eine datei vorhanden ?
begin
SuspendThread(MyThreadID) ; // thread unterbrechen
//...
// weitere Verarbeitung
//...
DeleteFile( Parameter.Pfad + Datei); // datei loeschen
if ThreadStoppen then // threadstoppen = boolean ; wird global gesetzt
Exit
else
begin
// ...
// weiter schauen <---- wie gehts weiter ? die suche soll weiter gehen
// ...
ResumeThread(MyThreadID);
end;
end;
end;
end;
end;
end;
FindCloseChangeNotification(hHnd) ;
end;
end;
Problem: Ich weiß nicht wie ich es umsetzen muss damit die funktion weiterarbeitet nachdem z.B.
einmal die Datei gefunden wurde. Ich will "nur" ein neues anstoßen bewirken.
cya