Kik på FindFirstChangeNotification, FindNextChangeNotification og WaitForSingleObject. Du kan evt. også benytte TShellChangeNotifier som du finder under fanen Samples. Servicen kan jeg ikke lige hjælpe med da jeg ikke prøvet før.
Ja, smid en Memo og en Button på en form, programmet vil skrive "Der er sket en ændring" i memoen hver gang en fil i mappen ændre navn, oprettes eller slettes. Du skal så selv holde styr på txt filerne, eller spørg her igen. Se i win32 hjælpen for andre værdier i stedet for FILE_NOTIFY_CHANGE_FILE_NAME
public constructor Create(aWatchHandle : THandle); end;
var Form1: TForm1;
implementation
{$R *.dfm}
{ TWatchThread }
constructor TWatchThread.Create(aWatchHandle : THandle); begin inherited Create(False); WatchHandle:=aWatchHandle; FreeOnTerminate:=true; end;
procedure TWatchThread.SendBesked; begin Form1.Memo1.Lines.Add(Besked); end;
procedure TWatchThread.Execute; var result : integer; begin Besked:='Thread startet'; Synchronize(SendBesked);
while not terminated do begin result:=WaitForSingleObject(WatchHandle,100); if result=WAIT_OBJECT_0 then begin Besked:='Der er sket en ændring'; Synchronize(SendBesked); if not FindNextChangeNotification(WatchHandle) then begin Besked:='Fejl i FindNextChangeNotification, thread afsluttes'; Synchronize(SendBesked); Terminate; end; end; end; end;
{ end TWatchThread }
procedure TForm1.Button1Click(Sender: TObject); var lpPathName : string; begin lpPathName:='c:\hk'; // mappen der skal overvåges WatchHandle:=FindFirstChangeNotification(PChar(lpPathName),false,FILE_NOTIFY_CHANGE_FILE_NAME); if WatchHandle=INVALID_HANDLE_VALUE then Memo1.Lines.Add('fejl i FindFirstChangeNotification') else TWatchThread.Create(WatchHandle); end;
Er der nogen mulighed for at se hvilke threads der er startet fra et program ??
Mener.. man kan have flere forskellige thredas der bliver startet fra et program, men hvordan kan jeg se hvilke af disse threads der nu kører og hvilke der er blevet stoppet igen ????
Ja jeg mener at der er mulighed for at se hvilke threads man har kørende kan dog ikke lige svare på hvordan. Men jeg vil nok til enhver tid foretrække at styrer det manuelt i programmet ved at have en variable til hver thread jeg har kørende, men nu har jeg normalt heller ikke mere end 1-3 threads kørende af gangen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.