Jak odchytit události existujícího File Systemu?

Podpora vývojářů nových pluginů, oznámení o nových pluginech nezávislých autorů a diskuse o nich.
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Jak odchytit události existujícího File Systemu?

Post by stepand76 »

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.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

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
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Post by stepand76 »

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.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Obávám se, že na nic takového momentálně neexistuje v Salamanderu podpora.

Pokud máte zájem věc více probrat, popište nám prosím, co všechno by plugin měl řešit a jak by se měl v Salamanderu chovat. Můžeme pak společně promyslet, zda je to možné, případně jaké rozšíření SDK by to znamenalo.
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Post by stepand76 »

Š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 :roll:
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Používáme pro to co navrhujete User Menu (odkud spouštíme CVS příkazy), takže tuším, co máte na mysli.
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Post by stepand76 »

Fajn, takže mohu čekat, že podporu pro něco takového doplníte do SDK? Nebo přímo do Salamandera doplníte integraci TSVN? Ikdyž to by asi nebylo dostatečně obecné.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5231
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

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.
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Post by stepand76 »

Rozumím, zkusím se nad tím zamyslet a případně to nějak shrnout. Ale stejně jako vy moc času nemám. To je u vývojářů už asi nějaký standard.
Post Reply