ďťż

Ładny brzuch

Witam,
Interesuje mnie komenda która zwróci mi wartość true kiedy na dysku będzie sie coś działo. Jeżeli istnieje jeszcze kod który rozróżnia operację odczyt i zapis, proszę o pomoc. Jeżeli jest też kod który rozpoznaje wysyłanie i odbieranie danych z Internetu, tez bym prosił o pomoc. Z góry dziękuję.
Pozdrawiam




Witam,
Interesuje mnie komenda która zwróci mi wartość true kiedy na dysku będzie sie coś działo. Jeżeli istnieje jeszcze kod który rozróżnia operację odczyt i zapis, proszę o pomoc. Jeżeli jest też kod który rozpoznaje wysyłanie i odbieranie danych z Internetu, tez bym prosił o pomoc. Z góry dziękuję.
Pozdrawiam

W delphi sa funklcje i procedury a nie komendy! A sprawdzic czy na dysku cos sie dzieje chyba mozna tylko z poziomu sterownika. Moze jeszcze sprobowac przechwycic przerywania ale nie sadze zeby system pozwolil na dostep do tego z poziomu aplikacji...


Witam,
Interesuje mnie komenda która zwróci mi wartość true kiedy na dysku będzie sie coś działo. Jeżeli istnieje jeszcze kod który rozróżnia operację odczyt i zapis, proszę o pomoc. Jeżeli jest też kod który rozpoznaje wysyłanie i odbieranie danych z Internetu, tez bym prosił o pomoc. Z góry dziękuję.
Pozdrawiam

No, to, co zaprezentuję nie zwraca true, ale może coś wywołać ;)

Potrzebny Ci komponent TShellChangeNotifier. Powinieneś go od razu odpowiednio skonfigurować:
ustalić monitorowany katalog (chyba da się Mój komputer, ale nie jestem pewien) - właściwość Root
ustalić, czy trzeba monitorować podfoldery - właściwość WatchSubTree
ustalić, na jakie zmiany powinien komponent reagować - gałąź właściwości NotifyFilters.

W jedynym możliwym zdarzeniu onchange napisz sobie np.:
procedure TForm1.ShellChangeNotifier1Change; var s: string; begin s := 'Zmiany w katalogu ' + ShellChangeNotifier1.Root; if ShellChangeNotifier1.WatchSubTree then s:=s + ' lub jego podfolderach'; showmessage(s); end;

A jeżeli zamiast var s: string wpiszę:var s: boolean; to wtedy powinno zwrócić mi true lub false, ale czy to bedzie działać?



To z true lub false nie bedzie działało na pewno.
ewentualnie patrz -> http://4programmers.net/Delphi/Length
Kod, pisze z glowy:
procedure TForm1.ShellChangeNotifier1Change; var b: boolean; begin b: = TRUE; Sleep(1000); ProceduraFalse; end;
procedure TForm1.ProceduraFalse var b: boolean; begin b: = False; end;
Jeżeli zajdą zmiany, zmienna b będzie true, skrypt odczega czas (1000 ms) i zmieni na false, jak ponownie zajdą zmiany, to ponownie odbędzie się ta kolejność. Hmmm ja to tak wymyśliłem, ale wszystko z głowy pisałem. Pozdro
Użytkownik kamils1991 edytował ten post 18 wrzesień 2006, 13:57
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •