Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Detekcija upisa novih/izmene starih fajlova u folderu

[es] :: Pascal / Delphi / Kylix :: Detekcija upisa novih/izmene starih fajlova u folderu

[ Pregleda: 2571 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4383
77.46.247.*

Sajt: https://avramovic.info


+45 Profil

icon Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 13:14 - pre 174 meseci
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?
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2665



+73 Profil

icon Re: Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 13:41 - pre 174 meseci
> 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.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
77.46.183.*

ICQ: 246436949


+10 Profil

icon Re: Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 14:08 - pre 174 meseci
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.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4383
77.46.247.*

Sajt: https://avramovic.info


+45 Profil

icon Re: Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 14:30 - pre 174 meseci
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
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2665



+73 Profil

icon Re: Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 15:15 - pre 174 meseci
> 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.
 
Odgovor na temu

Nemanja Avramović
Software architect
Tap medical
Beograd, Srbija

Član broj: 32202
Poruke: 4383
77.46.247.*

Sajt: https://avramovic.info


+45 Profil

icon Re: Detekcija upisa novih/izmene starih fajlova u folderu15.05.2007. u 15:27 - pre 174 meseci
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.

[Ovu poruku je menjao Nemanja Avramović dana 15.05.2007. u 17:02 GMT+1]
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Detekcija upisa novih/izmene starih fajlova u folderu

[ Pregleda: 2571 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.