Remote desktop a Salamander

Hlášení chyb a problémů programu Altap Salamander. Buďte, prosím, ve svých popisech co nejpodrobnější a vytvořte pro každý incident nový příspěvek. Nevkládejte programem generovaná hlášení o pádu programu, pošlete je e-mailem.
Aleš

Remote desktop a Salamander

Post by Aleš »

Dobrý den,
používám salamander ve verzi 2.51 a vysledoval jsem situace kdy dojde k zamrznutí Salamandera v době kdy jsem připojen na jiný počítač vzdálenou plochou a provádím kopírování dat na lokální disk přes RDP.
Dělám to tak, že na vzdáleném PC si vyberu soubor CTRL+C v exploreru, v dalším exploreru otevřu lokální disk a dám CTRL+V. V době kopírování je Salamander puštěný na lokálním PC nepoužitelný. Po dokončení kopírování jej opět možné používat.
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

Potvrzuji toto chování, také se mi to děje. Navíc pokud v průběhu procesu kopírování "zapomenu" a přepnu se do Salamandera, který ja zatuhlý, tak se na vzdálené ploše objeví dialog "Kopírování...", na kterém je možnost Storno, ale i po vystornování se objevuje stále dokola. Buď musím počkat, až doběhne původní kopírování a progress bar tohoto dialogu "Kopírování...", anebo proces Salamandera odstřelit (stejně tak pomůže odstřelení procesu remote desktop, resp. odpojení od session)
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

Nešlo by na tento problém mrknout? Se vzdálenou plochou pracuji prakticky denně, a pokud kopíruji např. nějaký soubor 30 minut, tak velice snadno zapomenu na to, že se nesmím na běžící instanci AS přepnout nebo si novou pustit, protože zatuhne a způsobí vyhození dialogu i na vzdálené ploše (a nezbyde než přes task manager Salamander odstřelit, na vzdálené ploše dialog stornovat, a pustit si na PC zatím Explorer)
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Podívám se na to začátkem příštího týdne. Vydání Salamandera 2.52 beta 1 plánujeme na pátek, pokud vše půjde dle očekávání.
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

Děkuji, to je výborná zpráva, pokud bych mohl nějak pomoci (s nasimulováním, testováním), napište
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Nedaří se mi problém reprodukovat. Na svých Windows XP (A) mám otevřený Remote Desktop na druhé Windows XP (B). V okně Remote Desktop vytvořím ve Windows (B) adresář C:\TEST, který naplním smetím. Šoupnu ho přes Ctrl+C na clipboard. Následně otevřu v Exploreru (stále v okně Remote Desktop) cestu \\tsclient\c\test, která vede na moje lokální Windows (A) a dám Ctrl+V.

Tím se začnou data kopírovat z Windows (B) na moje lokální Windows (A). Na lokálních Windows (A) během toho duplikuji v Salamanderu soubory pomocí Ctrl+C, Ctrl+V a vše chodí.

Popletl jsem nějaký krok?
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

Zkuste prosím ještě opačný postup (uploadovat z lokálního PC na vzdálenou plochu), nicméně mně se to děje i ve směru stahování který popisujete. Nevím, zda je ještě nějaký rozdíl v tom, že už při přihlašování na vzdálenou plochu dávám sdílet místní disk (mezi ostatními prostředky, tj. je tam trvale namapovaný) a na vzdálené ploše ho potom vidím na stejné úrovni jako lokální disky a do něj a z něj také kopíruji
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Zlobí to i při přenášení více malých souborů? Nebo musí jít o jeden kus?
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Mem wrote:Nevím, zda je ještě nějaký rozdíl v tom, že už při přihlašování na vzdálenou plochu dávám sdílet místní disk (mezi ostatními prostředky, tj. je tam trvale namapovaný) a na vzdálené ploše ho potom vidím na stejné úrovni jako lokální disky a do něj a z něj také kopíruji
To jsem přesně udělal, proto je UNC cesta \\tsclient\c\test

"tsclient" je vyhrazený název pro sdílení lokálního stroje prostřednictvím Remote Desktopu.
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

U malých jsem to nezaregistroval, většinou právě přenáším jeden velký archiv (instalace, zálohy DB apod.), který se kopíruje několik minut. A jak jsem psal úplně poprvé, pokud proces nakonec doběhne, tak se Salamander zase "odsekne", takže je možné, že u malých to dělá také, ale doběhne to tak rychle, že to člověk nezaregistruje
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Můžete prosím zkusit vypnout sdíleni Clipboardu?

Chtěl bych ověřit, že je problém tam. Salamander při aktivaci testuje obsah Clipboardu, aby mohl enablovat/disablovat některé příkazy (například Paste).
Attachments
remotedesktop1.png
remotedesktop1.png (60.11 KiB) Viewed 14477 times
User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Post by Mem »

Bingo :) Potvrzuji, vypnul jsem sdílení schránky, začal přenášet soubor na server, a Salamander zůstal plně aktivní, na vzdálené ploše se neobjevil žádný problém. Odpojil jsem se, znovu povolil sdílení schránky, připojil se a přenos souboru zopakoval. Při přepnutí zpět do Salamandera už došlo ke známému zatuhnutí
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Už mi to tu zlobí, děkuji za navedení na velký soubor a potvrzení toho Clipboardu!. Jdu ladit :)
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Post by Jan Rysavy »

Takže jsem se po pár hodinách testování zjistil následující.

V podstatě nejde vyloženě o chybu ani na jedné straně (Salamander a RDP), spíš o nepříjemnou souhru vlastností.

Salamander při aktivaci okna monitoruje Clipboard, aby mohl nastavit stavy tlačítek a položek v menu (pokud je například ve schránce textová cesta, bude v menu Salamandera zobrazeno Edit > Paste (Change Directory). Pokud je ve schránce odkaz na soubor, bude se položka jmenovat Edit > Paste. Součástí monitorování schránky je zavolání pDataObject->GetData().

A to je přesně okamžik, kdy si Remote Desktop začne "připravovat" data pro následný Paste. Pokud tedy v okně Remote Desktop vložíte do schránky odkaze (Edit > Copy z Explorera) na řekněme 1GB soubor, dojde v tento okamžik zřejmě k jeho nakopírování. To je ta fáze, kdy se zobrazí okénko Copying, Preparing paste information... na straně vzdálených Windows. Tato fáze může zabrat spoustu času, zejména pokud se data přenášejí po úzké lince na lokální počítač (to jsem nezkoumal, testuji proti lokálně běžícím XP ve VMware).

Situaci lze navodit také takto: pomocí Remote Desktop na vzdáleném počítači vložíte do schránky velký (např. 1GB) soubor pomocí příkazu Edit > Copy. Následně na lokálních XP v Exploreru dáte Edit > Paste. Během zmíněné přípravné fáze lokální Explorer zamrzne, stejně jako dočasně mrzne Salamander při aktivaci.

Po doběhnutí přípravné fáze se Salamander normálně rozjede a na příkaz Ctrl+V daný soubor nakopíruje do aktivního panelu.

Během zkoumání jsem narazil na věc, kterou považuji za chybu v Remote Desktop: při enumeraci formátů uložených ve schránce jsem našel zkrácené stringy:

Code: Select all

"Shell IDList Arr" místo "Shell IDList Array" (CFSTR_SHELLIDLIST)
"Preferred DropEf" místo "Preferred DropEffect" (CFSTR_PREFERREDDROPEFFECT)
"Shell Object Off" místo "Shell Object Offsets" (CFSTR_SHELLIDLISTOFFSET)
(viz Microsoft SDK\include\ShlObj.h)
Remote Desktop zjevně zařízne názvy na 16 znacích. Nepodařilo se mi na toto téma na webu nic najít. Každopádně bychom to mohli použít jako hack pro detekci, že jde data pocházející z Remote Desktop a nemáme je zkoumat, abychom nenastartovali přípravnou fázi kopírování na straně vzdálených Windows (i za cenu, že nám v Salamanderu nebudou sedět enablery). Ještě v kanceláři otestuji, jak se chová implementace Remote Desktop pod Windows Vista. Hack jsem tu na XP otestoval a zabral by.

Závěr: k problému dochází v případě, že na vzdálených Windows XP (na které přistupujeme pomocí Remote Desktopu) nakopírujeme do schránky odkaz na veliký soubor a na lokálních Windows aktivujeme Salamandera.

Provizorní řešení je nepoužívat pro kopírování takových velkých souborů schránku, ale nakopírovat je pomocí Salamandera ze vzdáleného počítače. Pomocí Shift+F7 a cesty \\tsclient\c lze ze vzdálených Windows přistupovat na lokální disk C, atd. Viz také http://forum.altap.cz/viewtopic.php?t=2781
Raptor

Post by Raptor »

Proc je vlastne na Paste navesena zmena adresare? Je to takova docela divna vec a evidentne prinasi spise problemy (o kterych se nevedelo). Pouziva to nekdo takto? Nikdy by mne nenapadlo pouzit Paste na zmenu adresare teda :-)
Post Reply