Avatar billede lifeweb Nybegynder
02. november 2005 - 10:58 Der er 8 kommentarer

Overvåge mapper

Hej

Jeg har fundet borrisholts "FindFirstNOTIFY", som kan klare at overvåge een mappe.
Derudover har jeg kigget på ShellChangeNotifier...

Jeg ønsker dog at overvåge flere mapper...
Hvordan er det muligt?

Jeg vil også gerne vide hvilken mappe der er sket ændringer i og evt hvilken fil.

Det ville være rigtig fedt hvis nogen kom med et løsningsforslag hvori mapperne er defineret via en config-fil...
Avatar billede stoney Nybegynder
02. november 2005 - 14:22 #1
kan du ikke bare læse i din config fil hvor mange mapper du vil overvåge
os så create en ShellChangeNotifier dynamisk for hver mappe du vil overvåge

Stoney
Avatar billede lifeweb Nybegynder
02. november 2005 - 14:26 #2
muligvis...

har du et lille kodeeksempel??
Avatar billede stoney Nybegynder
02. november 2005 - 14:34 #3
Jeg laver det i aften

Stoney
Avatar billede lifeweb Nybegynder
02. november 2005 - 15:43 #4
hej stoney

jeg har fundet ud af at oprette mine shellchangenotifier's dynamisk ud fra en liste...

nu får jeg så besked om at der er en af mapperne der er blevet ændret.
men hvordan læser jeg ud hvilken??
Avatar billede dkn Nybegynder
07. november 2005 - 18:28 #5
Nu ved jeg ikke lige hvordan den event ser ud. Men kunne regner med du har een fælles event til alle objecter, så ville det fx være

procedure OnChange(sender:tobject);
begin
  showmessage((sender as TShellChangeNotifier).Directory);
end;

håber du kan se pointen
Avatar billede lifeweb Nybegynder
08. november 2005 - 14:41 #6
Jeg bruger flg kode:

--snip--
var
  Form1: TForm1;
  notifier: array[1..999] of Tshellchangenotifier;
  x:integer;

procedure TForm1.ShellChangeNotifierChange(sender:tobject);
begin
showmessage((sender as TShellChangeNotifier).root);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
for x := 0 to memo1.Lines.Count-1 do
begin
notifier[x] := tshellchangenotifier.Create(self);
notifier[x].Root := memo1.Lines.Strings[x];
notifier[x].NotifyFilters := [nfFileNameChange,nfDirNameChange,nfSizeChange];
notifier[x].OnChange := ShellChangeNotifierChange(notifier[x]);
end;
end;
--snip--

Det virker ikke..

Jeg får:
"Incompatible types: TThread...."
Avatar billede dkn Nybegynder
09. november 2005 - 21:11 #7
tror du skulle overveje en tobjectlist istedet.
Avatar billede lifeweb Nybegynder
09. november 2005 - 21:18 #8
hvad mener du?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester