Page 1 of 2

Plugin Shell Menu

Posted: 13 Nov 2008, 13:21
by stepand76
Shell Menu je jednoduchý plugin, který umožňuje zaregistrovat program Altap Salamander do lokálního menu shellu Windows. Plugin do lokálního menu přidá příkaz browse with Altap Salamander, který otevře tento program na zvolené cestě. Lokálního menu shellu Windows je k dispozici např. v Průzkumníku Windows, standardních dialozích pro otevření a uložení souboru, na ploše Windows atd.

Plugin s podrobným popisem jeho funkce, omezení a upozornění na určité jeho problémy související s odinstalováním Salamandera je k dispozici zde:

http://sites.google.com/site/stepand76/asplugins

Toto vlákno bylo vytvořeno na požadavek Jana Ryšavého zde a mělo by sloužit i pro diskusi k tomuto pluginu.

Jakékoliv připomínky jsou vítány.

Posted: 13 Nov 2008, 15:44
by Jan Rysavy
Zkusil jsem plugin nainstalovat pod Windows 2000 Pro, zalogovaný jako administrátor. Dostal jsem přiloženou hlášku. Není problém v tom, že neexistuje hledaná cesta v registry, viz levý panel?

Na webu píšete o HKEY_CLASSES_ROOT\*\shell\Browse with Altap Salamander\command\

Posted: 13 Nov 2008, 15:56
by stepand76
Asi ano, díky. Doma mám jedno PC s W2K. Vyzkouším to. Testoval jsem to na XP SP3 a Vista SP1.

Posted: 18 Nov 2008, 09:01
by stepand76
Jan Rysavy wrote:Zkusil jsem plugin nainstalovat pod Windows 2000 Pro, zalogovaný jako administrátor. Dostal jsem přiloženou hlášku. Není problém v tom, že neexistuje hledaná cesta v registry, viz levý panel?

Na webu píšete o HKEY_CLASSES_ROOT\*\shell\Browse with Altap Salamander\command\
Zkoušel jsem plugin na Windows 2000. Nepodařilo se mi zreprodukovat problém. AS se do menu korektně zaregistroval i odregistroval. Zkoušel jsem to i v případě, že cesta HKEY_CLASSES_ROOT\* neexistuje (v takovém případě ji plugin vytvoří).

Zkusím do pluginu doplnit nějaké logování a požádám Vás o odzkoušení.

Posted: 18 Nov 2008, 10:23
by Jan Rysavy
Moje chyba, moc se omlouvám. Účet nebyl Administrátorský, mám tento systém již dlouho spuštěný ve VMWARE a pouze ho suspenduji/resumuji. Pamatoval jsem si, že jde o Admin účet, ale není tomu tak.

Přidám do SDK pro Salamandera 2.52 funkci IsUserAdmin(), takže bude možné situaci detekovat a zobrazit lepší hlášku.

Posted: 18 Nov 2008, 11:04
by Jan Rysavy
Plugin chodí bez problému. Prošli jsme to s Petrem a měli bychom nějaké návrhy:

Bylo by prima, kdyby se plugin pokusil přeložit PIDL na cestu a Salamandera volat pouze v případě, že cesta existuje (že nejde o OLE složku jako je Control Panel). Případně pro takové složky příkaz v context menu ani nenabízet?

Pokud uživatel vybere více jak jeden adresář a otevře context menu, asi by se příkaz také neměl zobrazit?

Mohli bychom (snad) do Salamandera přidat dva nové parametry, asi -A (to samé jako -L a -R, ale pro aktivní panel). Potom parametr -O, který by simuloval zapnutou volbu Only One Instance. To by mohlo zážitek z Vašeho pluginu vylepšit.

Posted: 18 Nov 2008, 12:34
by stepand76
Jan Rysavy wrote:Bylo by prima, kdyby se plugin pokusil přeložit PIDL na cestu a Salamandera volat pouze v případě, že cesta existuje (že nejde o OLE složku jako je Control Panel). Případně pro takové složky příkaz v context menu ani nenabízet?
Tohle určitě udělám. Ani jsem si nevšiml, že je to ve všech složkách včetně nesouborových. Ono pravděpodobně bude stačit registrovat to na "Directory" místo na "Folder".
Jan Rysavy wrote:Pokud uživatel vybere více jak jeden adresář a otevře context menu, asi by se příkaz také neměl zobrazit?
To by neměl. Uvidím co se s tím dá dělat.
Jan Rysavy wrote:Mohli bychom (snad) do Salamandera přidat dva nové parametry, asi -A (to samé jako -L a -R, ale pro aktivní panel). Potom parametr -O, který by simuloval zapnutou volbu Only One Instance. To by mohlo zážitek z Vašeho pluginu vylepšit.
Tohle beru! Sem s tím!

Díky za zájem.

Posted: 18 Nov 2008, 23:23
by jis
Jan Rysavy wrote:Mohli bychom (snad) do Salamandera přidat dva nové parametry, asi -A (to samé jako -L a -R, ale pro aktivní panel). Potom parametr -O, který by simuloval zapnutou volbu Only One Instance. To by mohlo zážitek z Vašeho pluginu vylepšit.
Oba parametry bych využil např. při volání Salamandera z Locate32 a Everything. Prosím, prosím, ne (snad), ale (určitě) :wink:.

Zatím musím volat AS z Everything takto:

Code: Select all

open_folder_path_command=$exec("C:\Program Files\Altap Salamander 2.51\salamand.exe" -I 1 -T "Everything" -L "%1")
open_folder_command=$exec("C:\Program Files\Altap Salamander 2.51\salamand.exe" -I 1 -T "Everything" -L "%1")

Posted: 19 Nov 2008, 08:28
by stepand76
Jan Rysavy wrote:Mohli bychom (snad) do Salamandera přidat dva nové parametry, asi -A (to samé jako -L a -R, ale pro aktivní panel). Potom parametr -O, který by simuloval zapnutou volbu Only One Instance. To by mohlo zážitek z Vašeho pluginu vylepšit.
Já ještě dodám, že by bylo prima, kdyby v případě, že cesta předaná v parametru je cestou na soubor, se tento soubor v panelu focusoval (nyní se pouze cesta nastaví do panelu).

Posted: 19 Nov 2008, 08:28
by Jan Rysavy
Měl by smysl i parametr, který by určil aktivní panel? Bylo by pak možné nastavit například cestu v levém panelu a aktivovat ho (nezávisle na konfiguraci).

Posted: 19 Nov 2008, 08:36
by jis
stepand76 wrote:Já ještě dodám, že by bylo prima, kdyby v případě, že cesta předaná v parametru je cestou na soubor, se tento soubor v panelu focusoval (nyní se pouze cesta nastaví do panelu).
Ale soubor dostane fokus přece již nyní, jen musí být kurzor v aktivním panelu. Alespoň mě to funguje.

Posted: 19 Nov 2008, 08:37
by jis
Jan Rysavy wrote:Měl by smysl i parametr, který by určil aktivní panel? Bylo by pak možné nastavit například cestu v levém panelu a aktivovat ho (nezávisle na konfiguraci).
Určitě.

Posted: 19 Nov 2008, 08:43
by Jan Rysavy
Ještě nějaké další parametry by se hodily, když už ten kód budu načítat?

Posted: 19 Nov 2008, 08:55
by jis
Já jsem naprosto spokojen s těmi 3 novými, výše diskutovanými :).

Posted: 19 Nov 2008, 09:23
by stepand76
Jan Rysavy wrote:Měl by smysl i parametr, který by určil aktivní panel? Bylo by pak možné nastavit například cestu v levém panelu a aktivovat ho (nezávisle na konfiguraci).
Pro plugin Shell Menu bych to asi nevyužil. Předpokládám, že využiji parametr -A (aktivní panel) a -O (simulace jedné instance), ale hodit by se mohl. Smysl to dává a je to obecné.