Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Detekcija upisa novih/izmene starih fajlova u folderu

  • 5 odgovora
  • 3.810 pregleda

Najnovija ↓

Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 14:14 · pre 237 meseci #1
Ovo sam uspeo da detektujem uz pomoć komponente ShellChangeNotifier iz Delphija, međutim, nikako ne mogu da dobijem detaljnije informacije i tome šta se desilo, kao i ime fajla koji se promenio:

Code:
procedure TForm1.ShellChangeNotifier1Change;
begin
showmessage('Neshto se promenilo');
end;


Kao što vidite, procedura koja se poziva u OnChange događaju ne daje ništa od parametara, tako da ne znam kako videti ono što me zanima.

Alternativa je možda komponenta FolderMonitor, ali mene više zanimaju besplatne alternative, a i koliko vidim sa slike, ova komponenta FolderMonitor ne nudi mnogo više od ShellChangeNotifier komponente.

Da li neko ima neke ideje? Neka druga komponenta? WinAPI?
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 14:41 · pre 237 meseci #2
> Da li neko ima neke ideje? Neka druga komponenta? WinAPI?

Od WinApi funkcija postoje tri varijante koje možeš koristiti, FindFirstChangeNotification, daje obaveštenje o događaju ali ne i o vrsti događaja, ima neka shell funkcija ali ne mogu sada da se setim imena, mislim da ona interno koristi tu istu funkciju. I treća je ReadDirectoryChangesW, daje i informacije o vrsti promene, ali ne znam da li pruža sve informacije koje tražiš. Ako ne, moraćeš da uradiš snapshot stanja dira i posle promene uporediš i vidiš gde su promene.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 15:08 · pre 237 meseci #3
ILI... mozes da radis kao sto to rade antivirusi i slicni programi... hookojes api funkcije za kreiranje, citanje, pisanje, brisanje... fajlova/foldera, a tako ne samo sto imas informaciju iz prve ruke o tome sta i kako se menja, nego mozes cak i da onemogucis operaciju ako zelis. Ovakav pristup je moguc samo na NT verzijama Windowsa, a na starijim verzijama bi morao da napises VXD driver, a to je vec malo zeznuto i mislim da Delphi ne moze da kompajlira VXD jer on nema PE header ako se dobro secam.

Mozes pogledati ovde kako da postavis hook na neke od funkcija: http://www.codeproject.com/system/soviet_protector.asp
Kod je pisan u C++, ali ga je lako razumeti.
Potpis
Play Store
Re: Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 15:30 · pre 237 meseci #4
Ah, to je malo komplikovano za mene. Mislim da ću verovatno raditi snapshot direktorijuma pa kad se izmeni onda još jednom i onda ide poređenje... samo da nađem lak način za poređenje :)
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Re: Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 16:15 · pre 237 meseci #5
> LI... mozes da radis kao sto to rade antivirusi i slicni programi... hookojes api
> funkcije za kreiranje, citanje, pisanje, brisanje... fajlova/foldera, a tako ne samo sto imas

AFAIK Antivirusi koriste file drajvere. Inače u Visti je zabranjeno hookovanje funkcija.

> Ah, to je malo komplikovano za mene. Mislim da ću verovatno raditi
> snapshot direktorijuma pa kad se izmeni onda još jednom i onda ide poređenje...
> samo da nađem lak način za poređenje

Sad sam pogledao ReadDirectoryChangesW i radi sve što ti treba, e sad ako ti treba i za Win9x... moraćeš snapshot.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Detekcija upisa novih/izmene starih fajlova u folderu 15.05.2007. u 16:27 · pre 237 meseci
izmenjeno 1 put, poslednji put Nemanja Avramović 15.05.2007. u 17:02
  1. Nemanja Avramović15.05.2007. u 17:02zapis iz teksta poruke
#6
Hvala. W9x se sve manje i manje koristi, tako da ću ograničiti program na WinNT

Inače, evo ovde gotove klase koja koristi ReadDirectoryChangesW

edit: Sad sam probao. Ekstremno jednostavno za koristiti. Završilo mi je posao.
Potpis
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme