Tuhnuti AS

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.
User avatar
MartinS
Posts: 107
Joined: 04 May 2006, 19:48
Location: Brno, Moravia

Re: Tuhnuti AS

Post by MartinS »

Také se s tímto problémem setkávám, ale bez přímé souvislosti s Clipboardem: pokud otevřu z AS XLS soubor s autostart makrem, tak AS zamrzne - a to stačí jen makro s formulářem typu:

For I = 1 To 100000
Label1.Caption = Str(I) & "/100000"
DoEvents
Next I

Je to po restartu počítače, spustím jen AS a pak XLS , Clipboard je prázdný. Salamander začne reagovat ještě před doběhnutím makra do konce.
Vista 32 + Office 2007.

Edit: Pokud spustím XLS z Exploreru a po naskočení makra v Excelu se přepnu zpět do okna Exploreru, tak ten sice nezatuhne, ale kurzor myši zobrazuje stále aktivitu na pozadí a to dokonce i když makro dojede až do konce. Většinou stačí přepnout okna, nebo uzavřít formulář v Excelu a kurzor je zpět na normálu.
Last edited by MartinS on 19 May 2009, 22:19, edited 1 time in total.

User avatar
Mem
Posts: 202
Joined: 08 Mar 2006, 15:07
Contact:

Re: Tuhnuti AS

Post by Mem »

To bude asi něco jiného a souvisí to zřejmě přímo se spuštěním asociovaného souboru (z vašeho popisu chápu, že otevíráte Excel spuštěním XLS souboru v AS?). Tohle se mi také děje u aplikací, které dělají něco náročného při startu (třeba start grafického editoru nebo sql management studia), někdy je to zatuhnutí tak dlouhé, že vyběhne chybová hláška (příkaz nemohl být zpracován nebo něco v tom smyslu). Dělá to ovšem i explorer, takže bych tipoval spíš souvislost s nějakým API voláním typu ShellExecute...

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5197
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Tuhnuti AS

Post by Jan Rysavy »

MartinS wrote:Edit: Pokud spustím XLS z Exploreru a po naskočení makra v Excelu se přepnu zpět do okna Exploreru, tak ten sice nezatuhne, ale kurzor myši zobrazuje stále aktivitu na pozadí a to dokonce i když makro dojede až do konce. Většinou stačí přepnout okna, nebo uzavřít formulář v Excelu a kurzor je zpět na normálu.
Zabalte prosím takové XLS do ZIPu a vložte nám ho sem do fóra jako přílohu. Mrkneme na to. Děkujeme.

User avatar
MartinS
Posts: 107
Joined: 04 May 2006, 19:48
Location: Brno, Moravia

Re: Tuhnuti AS

Post by MartinS »

Jan Rysavy wrote:Zabalte prosím takové XLS do ZIPu a vložte nám ho sem do fóra jako přílohu. Mrkneme na to. Děkujeme.
Tady to je. Samozřejmě se musí dočasně povolit makra, nebo nahrát do důvěryhodného umístění...
test.zip
(9.91 KiB) Downloaded 237 times

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5197
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Tuhnuti AS

Post by Jan Rysavy »

MartinS wrote:Tady to je. Samozřejmě se musí dočasně povolit makra, nebo nahrát do důvěryhodného umístění...
Díky. Spustil jsem dvě instance Salamandera, v první otevřel Help > Task List a ze druhé spustil test.xls. Po zobrazení Excelu s probíhajícím výpočtem jsem se přepnul do druhé instance Salamandera a zjistil že mohu šipkama na klávesnici měnit focus, ale po chvíli instance zamrzla.

Z první instance jsem tu zamrzlou breaknul a v nagenerovaném bug reportu je:

Code: Select all

Command "Break" was used.

Call Stacks:
  Thread ID: 0x12B8
  WinMainBody(0x400000, , , 1)
  WinMainBody::FindLatestConfiguration
  WinMainBody::StartupDialog
  WinMainBody::inicialization
  WinMainBody::load_config
  WinMainBody::message_loop
  CFilesBox::WindowProc(0x203, 0x1, 0x20A0023)
  CFilesWindow::Execute(160)
  ExecuteAssociation(, D:\, test.xls)
  ExecuteAssociation::1
  ExecuteAssociation::2

Stack Back Trace:
  Thread ID: 0x12B8
  EIP = 0x77420BC5 ntdll.dll
  0x75298F76 USER32.dll
  0x75298FBF USER32.dll
  0x75753F15 SHELL32.dll
  0x7580D41B SHELL32.dll
  0x7580D38B SHELL32.dll
  0x7580D081 SHELL32.dll
  0x757A1559 SHELL32.dll
  0x757A163B SHELL32.dll
  0x757A140D SHELL32.dll
  0x7575522A SHELL32.dll
  0x757551A1 SHELL32.dll
  0x75754C8A SHELL32.dll
  0x757549CA SHELL32.dll
  0x004E7F3C salamand.exe
  0x004E8292 salamand.exe
  0x00446F9A salamand.exe
  0x00464A5B salamand.exe
  0x005180CE salamand.exe
  0x75298807 USER32.dll
  0x75298962 USER32.dll
  0x75298AAD USER32.dll
  0x75299100 USER32.dll
  0x004CCF5D salamand.exe
  0x004CD86D salamand.exe
  0x00523EA6 salamand.exe
  0x762CE4A5 kernel32.dll
  0x7747CFED ntdll.dll
  0x7747D1FF ntdll.dll
  ----
Z toho plyne, že po získání context menu pro test.xls a následném zavolání IContextMenu::InvokeCommand() se k nám vlákno nevrátí do doby, dokud makro nedoběhne. Windows v rámci IContextMenu::InvokeCommand() zjevně pumpují zprávy (jinak by se do Salamandera nedalo přepnout a chvíli navigovat). Salamander má aplikační smyčku poměrně komplikovanou a nefunguje z jiné, "nesalamandeří". Windows Explorer je na takovou situaci zjevně připraven, ostatně IContextMenu::InvokeCommand() je jeho součástí. Stejně ale zobrazuje hodiny, takže v ideálním stavu také není. Ani MSDN s takovou situací nepočítá, jde docela ošklivý hack. Netuším zda na straně Excelu nebo ve Windows.

Závěr: toto je jiný problém, který s OLE/Clipboardem pravděpodobně nesouvisí. Stejně ale děkujeme za info.

EDIT: Poznámka: testoval jsem TC a nezatuhne hned, ale po několik vytvoření / smazání adresáře se kousne stejně jako Salamander.

Raptor

Re: Tuhnuti AS

Post by Raptor »

Vykopavam jeden stary nevyreseny problem - nejake reseni na obzoru? Delam ted dost s Excely a makry a tohle mi zacina pit krev :-)

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5197
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Tuhnuti AS

Post by Jan Rysavy »

Poslední informace od Vás byla taková, že to již nezlobí. Pokud to zase zlobí, prostudujte prosím toto vlákno a dodejte nám podklady, o které jsme žádali. Díky.

Nebo jste mi ty podklady posílal emailem? Už se mi to vytratilo z hlavy.

Raptor

Re: Tuhnuti AS

Post by Raptor »

Uz si taky presne nevybavuju zda se to uzavreno nebo ne, v kazdem pripade pokud delam z Excelem a makry tak to dela porad.

prikladem ted budiz ze mam Excel, v nem makro co zpracovava data z DB. Spustim excel z AS, vse slape. Pustim makro - Excel chrousta a AS je tuhy. makro dojede, AS se rozjede taky. proste takove nejake divne chovani, ktere nedokazu vysvetlit. Nevidim tady porad spojeni, proc by mel EXCEL svou praci zastavovat jiny program.

Vlastne je to to co popisuje MartinS o par prizpevku vyse :-)

Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5197
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Tuhnuti AS

Post by Jan Rysavy »

Pokud je to situace, kterou popisuje MartinS, pak řešení nemáme, viz moje vysvětlení nahoře. Problém zde na fóru nevídám, zřejmě jde o okrajovou záležitost a navíc jen obtížně řešitelnou.

Post Reply