Jak odchytit události existujícího File Systemu?
- stepand76
- Plugin Developer
- Posts: 455
- Joined: 16 Apr 2007, 21:22
- Location: Pardubice, Czech Republic
Jak odchytit události existujícího File Systemu?
Ahoj, zkouším si vytvořit svůj první plugin. Podařila se mi vytvořit jakási kostra, vše vypadá, že funguje. Potřebuju nějakým způsobem odchytit události File Systemu (vytvoření souboru, smazání souboru, přejmenování souboru). Jde mi ale o to, že nechci vytvářet svůj File System, ale chci tyto události obsluhovat u existujících File Systemu. Poradí mi někdo jak na to? Jaké rozhraní implementovat? Díky.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Ahoj, pokud jde o čistý file systém, dobře poslouží FindFirstChangeNotification(). V tomto případě jde o notifikace vycházející přímo ze souborového systému.
Pro monitorování složek (Control Panel, Tasks, ...) je potřeba použít vyšší vrstvu, která však umí zahrnout i notifikace ze souborového systému.
Jde o rodinu funkcí kolem SHChangeNotifyRegister(). Zde jsou zdrojem notifikací součásti Windows Exploreru (souborový systém neví nic o složkách).
Ještě starší čtení z doby, než byl MS dotlačen k publikování "interních" API: http://www.geocities.com/SiliconValley/ ... tents.html
Pro monitorování složek (Control Panel, Tasks, ...) je potřeba použít vyšší vrstvu, která však umí zahrnout i notifikace ze souborového systému.
Jde o rodinu funkcí kolem SHChangeNotifyRegister(). Zde jsou zdrojem notifikací součásti Windows Exploreru (souborový systém neví nic o složkách).
Ještě starší čtení z doby, než byl MS dotlačen k publikování "interních" API: http://www.geocities.com/SiliconValley/ ... tents.html
- stepand76
- Plugin Developer
- Posts: 455
- Joined: 16 Apr 2007, 21:22
- Location: Pardubice, Czech Republic
Omlouvám se, nenapsal jsem to přesně. Potřebuji mít kontrolu nad operacemi, které (nad File Systemem) provádí Salamander. Např. pokud v Salamanderu dám příkaz pro vymazání souboru tak abych mohl v pluginu provést i nějakou další operaci. Čili potřeboval bych něco takového jako aby Salamander pluginu zavolal nějakou funkci a do ní předal informaci o tom, že smazal soubor a předal jeho cestu.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
- stepand76
- Plugin Developer
- Posts: 455
- Joined: 16 Apr 2007, 21:22
- Location: Pardubice, Czech Republic
Šlo mi konkrétně o integraci TortoiseSVN do Salamandera. Chtěl jsem, aby plugin zajistil aby např. místo smazání souboru, který je v SVN, pomocí AS, se provedlo jeho označení, že má být při commitu odebrán ze SVN (stejně jako příkaz TortoiseSVN > Delete v lokálním menu shellu). A podobně pro další operace jako je přejmenování, přidání nového apod. Takto se chová např. IntelliJ IDEA (prostředí pro jazyk Java) a určitě i spousta jiných programů.
SDK jsem neprostudoval dost důkladně na to abych byl schopen navrhnout nějaké jeho rošíření. To by mi dalo nějakou práci
SDK jsem neprostudoval dost důkladně na to abych byl schopen navrhnout nějaké jeho rošíření. To by mi dalo nějakou práci
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Pokud zde uvidíme větší zájem o takový plugin a pokud někdo bude schopný detailně rozepsat, jak přesně se má plugin chovat, které přesně příkazy má umět a jak, potom se tomu můžeme věnovat.
Nemáme žádnou zkušenost s vývojovým prostředím, které by integrovalo CVS/SVN, jak popisujete. Takže opravdu jen velice povrchně tušíme, co si představujete. To pro rozšíření SDK určitě nestačí.
Současné zadání je tak povrchní, že bychom vlastně museli plugin sami vymyslet: prozkoumat co nabízí SVN, promyslet které příkazy by šly takto mapovat do Salamandera, vymyslet jak by to celé fungovalo (kdo bude ve Vašem případě mazat, plugin nebo Salamander, atd). A na to momentálně nemáme čas.
Nemáme žádnou zkušenost s vývojovým prostředím, které by integrovalo CVS/SVN, jak popisujete. Takže opravdu jen velice povrchně tušíme, co si představujete. To pro rozšíření SDK určitě nestačí.
Současné zadání je tak povrchní, že bychom vlastně museli plugin sami vymyslet: prozkoumat co nabízí SVN, promyslet které příkazy by šly takto mapovat do Salamandera, vymyslet jak by to celé fungovalo (kdo bude ve Vašem případě mazat, plugin nebo Salamander, atd). A na to momentálně nemáme čas.