AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) "FindFirstChangeNotifikation" neu anstoßen
Thema durchsuchen
Ansicht
Themen-Optionen

"FindFirstChangeNotifikation" neu anstoßen

Ein Thema von soulies · begonnen am 9. Jun 2010 · letzter Beitrag vom 10. Jun 2010
 
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#1

"FindFirstChangeNotifikation" neu anstoßen

  Alt 9. Jun 2010, 14:48
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
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz