Salamander někdy neodemkne adresář pro jeho smazání
Salamander někdy neodemkne adresář pro jeho smazání
Při použití níže uvedeného postupu Salamander nesmaže adresář.
1. vytvořím adresář "c:\pokus"
2. zkopíruji tam jakýkoliv exe, např. "calc.exe" z windows
3. ten program spustím a po naběhnutí zavřu.
4. chci zmazat celý adresář "c:\pokus" a objeví se chybová hláška,
že soubor používá jiný proces. Je smazán jen ten exe soubor.
Buď musím Salamander ukončit a znovu zpustit a nebo použít program UNLOCKER pro odemčení procesu a smazání toho adresáře.
Toto pozoruji na systému win2000 sp4 i winXP sp2, mám tam admin práva a disk je naformátován na FAT32.
Dělá to SS 2.0 i SS 2.5 beta 11. (Total Comander 6.52 na stejném počítači to nedělá.)
Mazání mám nastaveno na přímé bez použití koše.
1. vytvořím adresář "c:\pokus"
2. zkopíruji tam jakýkoliv exe, např. "calc.exe" z windows
3. ten program spustím a po naběhnutí zavřu.
4. chci zmazat celý adresář "c:\pokus" a objeví se chybová hláška,
že soubor používá jiný proces. Je smazán jen ten exe soubor.
Buď musím Salamander ukončit a znovu zpustit a nebo použít program UNLOCKER pro odemčení procesu a smazání toho adresáře.
Toto pozoruji na systému win2000 sp4 i winXP sp2, mám tam admin práva a disk je naformátován na FAT32.
Dělá to SS 2.0 i SS 2.5 beta 11. (Total Comander 6.52 na stejném počítači to nedělá.)
Mazání mám nastaveno na přímé bez použití koše.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Můžete prosím pro zajímavost vedle programů Servant Salamander a Total Commander otestovat Váš postup také ve Windows Explorer?
Pro odstranění problému musíme zjistit, která knihovna (DLL) "zapoměla" otevřený handle. Můžete provést kroky podle následujícího návodu?
http://www.altap.cz/salam_en/faulty_she ... sions.html
(v tomto případě jde o kapitolku 1.2)
Pro odstranění problému musíme zjistit, která knihovna (DLL) "zapoměla" otevřený handle. Můžete provést kroky podle následujícího návodu?
http://www.altap.cz/salam_en/faulty_she ... sions.html
(v tomto případě jde o kapitolku 1.2)
Pro zajímavost to také vyzkouším, jen chci potvrdit, že se mi to už taky párkrát stalo, byly to instalace různých utilit, dočasně rozbalené archivy apod. Musel jsem vždy SS zavřít, znovu pustit, a potom už adresář smazat šlo.
P.S.: Takže přímo ten postup s calc.exe apod. mi chybu nezpůsobí, tj. jakmile je proces ukončen nebo aplikace editující dokument uzavřená, tak už adresář smazat lze, kdybych objevil nějakou, kde to nejde, pošlu seznam knihoven. Windows XP (5.1.2600) SP2 CS
P.S.: Takže přímo ten postup s calc.exe apod. mi chybu nezpůsobí, tj. jakmile je proces ukončen nebo aplikace editující dokument uzavřená, tak už adresář smazat lze, kdybych objevil nějakou, kde to nejde, pošlu seznam knihoven. Windows XP (5.1.2600) SP2 CS
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
POZOR, následuje ošklivý, rozvleklý a technický příspěvek. Pouze pro otrlé uživatele 
Pokud stačí Salamandera ukončit/znovu spustit, aby zámky povolily (popisovaný případ), pocházely zámky z procesu Salamandera a UNLOCKER, WhoLockMe a spol. nic bližšího neprozradí.
Pokusím se popsat k čemu dochází: některé funkce Salamandera volají služby operačního systému, které se vykonají prostřednictvím tzv. Shell Extensions. Jde o speciální DLL knihovny určené k rozšiřování prostředí Windows. Tyto knihovny se spouštějí v procesu, který zavolal některou z inkriminovaných funkcí operačního systému. V našem případě je to Salamander.
Dva příklady Shell Extension:
1) Rozšíření kontextového menu: uživatel klikne pravým tlačítkem na souboru a v rozbalené nabídce je položka archivátoru 7-Zip, která nabízí zabalení souboru do archivu. Již při otevírání nabídky operační systém požádal Shell Extension od programu 7-Zip, aby nabídku rozšířila o své položky. Pokud si uživatel jeden z nabídnutých příkazů zvolí, je na Shell Extension, aby patřičnou činnost vykonala (v tomto případě iniciovala zabalení souboru do archivu).
2) Poskytování ikonek: v panelu uživatel zobrazí adresář obsahující soubory, které obsahují grafiku (bitmapy, vektory). Speciální Shell Extension pro každý tento soubor připraví zmenšeninu obrázku, kterou vrátí jako ikonku. Uživatel má tak představu, co je uvnitř souboru.
Existuje celá řada Shell Extensions, jedná se o běžnou součást programů. Od malých open source projektů jako je 7-Zip, po velké aplikace typu Adobe Photoshop, Adobe Illustrator nebo Corel Draw.
Pokud je v Shell Extension "chyba" a knihovna například po vytvoření ikonky zapomene zavřít handle (zámek) k souboru, projeví se problém až ve chvíli, kdy se uživatel pokusí soubor smazat. Vypadá to, že handle zapomněl zavřít Salamander (po jeho ukončení soubor již smazat lze). Pokud je v Shell Extension vážnější chyba a knihovna "spadne", spadne z hlediska uživatele Salamander. Někdy se vadná Shell Extension projevuje pouze zpožděním (několik vteřin) při otevírání kontextového menu.
Jak dohledáváme tyto vadné Shell Extensions: využíváme diagnostické funkce Salamandera (menu Help > Report a Bug), která zobrazí seznam DLL knihoven načtených v jeho procesu. Shell Extensions se naštěstí do procesu načítají až ve chvíli, kdy jsou potřeba (otevírá se kontextové menu, zobrazuje se ikonka souboru, atd.). Pokud tedy pořídíme seznam DLL knihoven z "čistého" Salamandera (těsně po spuštění, pokud možno oba panely v prázdných adresářích, aby se nenačetly ikonky), následně reprodukujeme problém (navodíme stav, kdy nelze smazat soubor) a znovu pořídíme seznam načtených DLL knihoven, lze tyto dva seznamy porovnat. Některá z nově načtených knihoven (Shell Extensions) je pravděpodobně příčinou problému.
Shell Extension lze celkem jednoduše potlačit: přejmenujeme knihovnu (například připojíme podtržítko) a restartujeme Windows. Potom zkusíme, zda problém zmizel. Pokud ne, přejmenujeme knihovnu zpět a ta začne samovolně fungovat (je registrována v Registry).
Právě vyhledáváním problematických Shell Extensions se zabývá tento náš text: http://www.altap.cz/salam_en/faulty_she ... sions.html
Problémy spojené s Shell Extensions, které se projevují v programu Servant Salamander, se často projevují také v případě programu Windows Explorer. Nemusí to však platit vždy, záleží na implementaci konkrétní Shell Extension.
Pokud máte zájem do problematiky hlouběji nahlédnout z hlediska uživatele, mrkněte na tento pěkný nástroj: http://www.nirsoft.net/utils/shexview.html
Stránka popisující problematiku z hlediska programu Windows Explorer: http://windowsxp.mvps.org/slowrightclick.htm
A na závěr problematika Shell Extensions z pohledu vývojáře: MSDN.
S problémem vadných Shell Extensions zápasíme roky, omluvte proto tento rozvleklý příspěvek. Byl bych rád, kdyby uživatelé měli možnost pochopit jádro problému. Pokud je něco nejasně popsáno, klidně se ptejte.

Pokud stačí Salamandera ukončit/znovu spustit, aby zámky povolily (popisovaný případ), pocházely zámky z procesu Salamandera a UNLOCKER, WhoLockMe a spol. nic bližšího neprozradí.
Pokusím se popsat k čemu dochází: některé funkce Salamandera volají služby operačního systému, které se vykonají prostřednictvím tzv. Shell Extensions. Jde o speciální DLL knihovny určené k rozšiřování prostředí Windows. Tyto knihovny se spouštějí v procesu, který zavolal některou z inkriminovaných funkcí operačního systému. V našem případě je to Salamander.
Dva příklady Shell Extension:
1) Rozšíření kontextového menu: uživatel klikne pravým tlačítkem na souboru a v rozbalené nabídce je položka archivátoru 7-Zip, která nabízí zabalení souboru do archivu. Již při otevírání nabídky operační systém požádal Shell Extension od programu 7-Zip, aby nabídku rozšířila o své položky. Pokud si uživatel jeden z nabídnutých příkazů zvolí, je na Shell Extension, aby patřičnou činnost vykonala (v tomto případě iniciovala zabalení souboru do archivu).
2) Poskytování ikonek: v panelu uživatel zobrazí adresář obsahující soubory, které obsahují grafiku (bitmapy, vektory). Speciální Shell Extension pro každý tento soubor připraví zmenšeninu obrázku, kterou vrátí jako ikonku. Uživatel má tak představu, co je uvnitř souboru.
Existuje celá řada Shell Extensions, jedná se o běžnou součást programů. Od malých open source projektů jako je 7-Zip, po velké aplikace typu Adobe Photoshop, Adobe Illustrator nebo Corel Draw.
Pokud je v Shell Extension "chyba" a knihovna například po vytvoření ikonky zapomene zavřít handle (zámek) k souboru, projeví se problém až ve chvíli, kdy se uživatel pokusí soubor smazat. Vypadá to, že handle zapomněl zavřít Salamander (po jeho ukončení soubor již smazat lze). Pokud je v Shell Extension vážnější chyba a knihovna "spadne", spadne z hlediska uživatele Salamander. Někdy se vadná Shell Extension projevuje pouze zpožděním (několik vteřin) při otevírání kontextového menu.
Jak dohledáváme tyto vadné Shell Extensions: využíváme diagnostické funkce Salamandera (menu Help > Report a Bug), která zobrazí seznam DLL knihoven načtených v jeho procesu. Shell Extensions se naštěstí do procesu načítají až ve chvíli, kdy jsou potřeba (otevírá se kontextové menu, zobrazuje se ikonka souboru, atd.). Pokud tedy pořídíme seznam DLL knihoven z "čistého" Salamandera (těsně po spuštění, pokud možno oba panely v prázdných adresářích, aby se nenačetly ikonky), následně reprodukujeme problém (navodíme stav, kdy nelze smazat soubor) a znovu pořídíme seznam načtených DLL knihoven, lze tyto dva seznamy porovnat. Některá z nově načtených knihoven (Shell Extensions) je pravděpodobně příčinou problému.
Shell Extension lze celkem jednoduše potlačit: přejmenujeme knihovnu (například připojíme podtržítko) a restartujeme Windows. Potom zkusíme, zda problém zmizel. Pokud ne, přejmenujeme knihovnu zpět a ta začne samovolně fungovat (je registrována v Registry).
Právě vyhledáváním problematických Shell Extensions se zabývá tento náš text: http://www.altap.cz/salam_en/faulty_she ... sions.html
Problémy spojené s Shell Extensions, které se projevují v programu Servant Salamander, se často projevují také v případě programu Windows Explorer. Nemusí to však platit vždy, záleží na implementaci konkrétní Shell Extension.
Pokud máte zájem do problematiky hlouběji nahlédnout z hlediska uživatele, mrkněte na tento pěkný nástroj: http://www.nirsoft.net/utils/shexview.html
Stránka popisující problematiku z hlediska programu Windows Explorer: http://windowsxp.mvps.org/slowrightclick.htm
A na závěr problematika Shell Extensions z pohledu vývojáře: MSDN.
S problémem vadných Shell Extensions zápasíme roky, omluvte proto tento rozvleklý příspěvek. Byl bych rád, kdyby uživatelé měli možnost pochopit jádro problému. Pokud je něco nejasně popsáno, klidně se ptejte.
Re: Salamander někdy neodemkne adresář pro jeho smazání
To samé se řeší i zde: Directory locked after launching file in directory
Altap Salamander fan since 1998
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Re: Salamander někdy neodemkne adresář pro jeho smazání
Děkuji za připomenutí, to mi uniklo...jis wrote:To samé se řeší i zde: Directory locked after launching file in directory
Tak mi to dělal Corel versions jak je uveden v kapitole 2. Po jeho odinstalaci se chyba neprojevuje.Jan Rysavy wrote: Pro odstranění problému musíme zjistit, která knihovna (DLL) "zapoměla" otevřený handle. Můžete provést kroky podle následujícího návodu?
http://www.altap.cz/salam_en/faulty_she ... sions.html
(v tomto případě jde o kapitolku 1.2)
Zajímavé je, že naprosto stejně mám Corel Draw 8 CZ nainstalován i na počítači s windows 98SE a tam chyba s mazáním nebyla.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Zlobilo to i s Windows Explorer?padik wrote:Tak mi to dělal Corel versions jak je uveden v kapitole 2. Po jeho odinstalaci se chyba neprojevuje.
To je normální, knihovny (Shell Extensions) se zkrátka mohou pro každým operačním systémem chovat jinak.padik wrote:Zajímavé je, že naprosto stejně mám Corel Draw 8 CZ nainstalován i na počítači s windows 98SE a tam chyba s mazáním nebyla.
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
I to je normální, ve hře je mnoho faktorů. Normální je také to, že soubory má zamčené Salamander, viz rozsáhlý popis fungování Shell Extensions nahoře.padik wrote:Ne, windows explorer ani TC to nedělal. A zapoměl jsem, že UNLOCKER hlásil zamčený proces v Salamanderovi.
Pro zajímavost uvedu odkaz na člověka se stejným problémem, kterému však zlobil Windows Explorer: http://www.experts-exchange.com/Operati ... 80703.html
Právě se mi stalo, že nešel vymazat adresář, a to ani v Exploreru, ani po restartu Salamandra. Až restart PC toto vyřešil. Provedl jsem kroky dle výše odkazovaného návodu (doufám že správně, ona angličtina není bohužel tím správným jazykem pro mne), ale nejsem schopen vyhodnotit výsledek. Můžu někam poslat ty dva soubory, ať se na ně podívá někdo kvalifikovanější?Jan Rysavy wrote:Můžete prosím pro zajímavost vedle programů Servant Salamander a Total Commander otestovat Váš postup také ve Windows Explorer?
Pro odstranění problému musíme zjistit, která knihovna (DLL) "zapoměla" otevřený handle. Můžete provést kroky podle následujícího návodu?
http://www.altap.cz/salam_en/faulty_she ... sions.html
(v tomto případě jde o kapitolku 1.2)
Koutňák
-
- ALTAP Staff
- Posts: 5231
- Joined: 08 Dec 2005, 06:34
- Location: Novy Bor, Czech Republic
- Contact:
Pokud nepomohlo ukončení/nové spuštění Salamandera, měl adresář zamčený jiný běžící proces. Horkým kandidátem je Windows Explorer, kterého lze ze správce úloh ukončit a následně znovu spustit explorer.exe (například z běžícího Salamandera). Problémy s Shell Extensions se ostatně primárně týkají tohoto programu.
Pokud problém dokážete reprodukovat, zkuste mi na email poslat zmíněné dva textové soubory (jeden exportovaný ihned po spuštění Salamandera a jeden po nějaké akci, například otevření souboru z daného adresáře).
Zkuste také citovaný UNLOCKER ( http://ccollomb.free.fr/unlocker/ ), který umí zobrazit, který proces má daný adresář zamčený. Dejte nám vědět
Pokud problém dokážete reprodukovat, zkuste mi na email poslat zmíněné dva textové soubory (jeden exportovaný ihned po spuštění Salamandera a jeden po nějaké akci, například otevření souboru z daného adresáře).
Zkuste také citovaný UNLOCKER ( http://ccollomb.free.fr/unlocker/ ), který umí zobrazit, který proces má daný adresář zamčený. Dejte nám vědět
