Moderators SmOke_N Posted June 21, 2007 Moderators Share Posted June 21, 2007 I'm curious if this is failing/freezing for anyone else. After speaking with Gary last night, he had suggested that using DLLStruct* with GUIs caused him some issues as well. So I rolled back from 3.2.4.9 to 3.2.2.0, and the issue is still there for me... I just need to know if the GUI is freezing. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
PsaltyDS Posted June 21, 2007 Share Posted June 21, 2007 (edited) I'm curious if this is failing/freezing for anyone else.After speaking with Gary last night, he had suggested that using DLLStruct* with GUIs caused him some issues as well. So I rolled back from 3.2.4.9 to 3.2.2.0, and the issue is still there for me... I just need to know if the GUI is freezing.Presents one GUI with a list view and exits when I close that: screenshot attached.P.S. XP Pro SP2, with 3.2.4.9 Edited June 21, 2007 by PsaltyDS Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
PaulIA Posted June 21, 2007 Share Posted June 21, 2007 (edited) I'm curious if this is failing/freezing for anyone else. After speaking with Gary last night, he had suggested that using DLLStruct* with GUIs caused him some issues as well. So I rolled back from 3.2.4.9 to 3.2.2.0, and the issue is still there for me... I just need to know if the GUI is freezing.I'm guessing that you're talking about the problem when you double click on the ListView and it freezes? If so, the problem isn't with the DllStruct* functions. You're hooking the WM_NOTIFY event and then displaying a dialog box in the middle of the event. Per the AutoIt help file on GUIRegisterEvent: Warning: blocking of running user functions which executes window messages with commands such as "Msgbox()" can lead to unexpected behavior, the return to the system should be as fast as possibleIt's not an AutoIt problem as you'd have the same problem in any language AFAIK. Typically, what you want to do is set a global flag in your event handler that indicates the event has happened and then monitor that flag in your main GUIGetMsg() loop. You can then safely launch your other code from there without causing any problems. Edit: Something like this. expandcollapse popup#include <GUIConstants.au3> #include <GUIListView.au3> Global &ÌÍÙÚPÒQ ÌÍÙÜÕ^ ÌÍÙÙYÏQ[ÙBÌÍÚXZ[HÕRPÜX]J ÌÎNÑ7Æb33²Â#CÂ3¢b33c¶ÅbÒuT7G&Ä7&VFTÆ7EfWrb33³Ã'Ã7ÃGÃWÃWÃbÌäì°À°À°ÄÈÐÀ°ÈÔÀ° ¥Ñ=H ÀÌØí1YM}M%91M0°ÀÌØí1YM}M!=]M11]eL°#036;LVS_NOSORTHEADER)) GUICtrlSendMsg($hLV, $LVM_SETEXTENDEDLISTQUÔÕSK ÌÍÓ×ÑVÑÔQSTË ÌÍÓ×ÑVÑÔQSTÊBÕRPÝÙ[ÙÊ 3c¶ÅbÂb33c´ÅdÕõ4UDUDTäDTDÄ5EdUu5EÄRÂb33c´Åe5ôUôeTÄÅ$õu4TÄT5BÂb3ÌØí1YM}a}U11I=]M1 P¤)}U% Ñɱ1¥ÍÑY¥ÝMÑ ½±Õµ¹]¥Ñ ÀÌØí¡1X°À°äÀ¤)}UICtrlListViewSetColumnWidth($hLV, 1, 90) _GUICtrlListViewSetColumnWid ÌÍÚML BÑÕRPÝÝY]ÔÙ]ÛÛ[[ÚY ÌÍÚËÌ BÑÕR7G&ÄÆ7EfWu6WD6öÇVÖåvGFb33c¶ÅbÂBÂ#¥ôuT7G&ÄÆ7EfWu6WD6öÇVÖåvGF ÀÌØí¡1X°Ô°ÄÀؤ)}U% Ñɱ1¥ÍÑY¥ÝMÑ ½±Õµ¹]¥Ñ ÀÌØí¡1X°Ø°ÌÀÀ¤(ÀÌØhLVItem = GUICtrlCreateListViewItem('A|B|C|D|E|F|G', $hLV) GUIYÚÝÙÊ K ÌÎN×ÕÓWÓÝYWÑ][ÉÌÎNÊBÕRTÙ]Ý]J BÚ[HBÝF6uTvWD×6r¢66RÓ0¢W@¢VæE7vF6¢bb33c¶±Ñ¡¸(}U%1Y ½µµ¹Ð ÀÌØí¥ %°ÀÌØíÍQáФ(ÀÌØí±= False endif WEnd Func _GUILVAddComment($iCID, $sText) LoØ[ ÌÍÚÚ[HÕRPÜX]J ÌÎNÐYHÛÛ[Y[ ÌÎNË MLLKLK 3cµu5ôUõDõÔõ5B¢uT7G&Ä7&VFTÆ&VÂb33´6öÖÖVçG2b33²ÂÂÂ3ÂÀ°ÁàÀÀÀĤ(1½°ÀÌØí¡1Y%¹ÁÕÐôU% Ñɱ ÉѥРÌäìÌäì°ÄÀ°ÌÔ°380, 40, BitOR(0x0004, 0x0040,0x00200000)) Local $hButton = GUICtrÜX]P]Û ÌÎNÐYÛÛ[Y[ ÌÎNËL KÎJBÕRTÙ]Ý]JÕ×ÔÒõrÂb33c¶Åd6ÆB¢vÆR¢b33c¶×6rÒuTvWD×6r¢7¥Ñ ÀÌØí¡5ÍlÅt( ÍÀÌØí¡1Y ¡¥±(MÝ¥Ñ 036;hMsg[0] Case -3 ExitLoop ØÙH ÌÍÚ]ÛÕRPÝÙ]]Jb33c¶4BÂb33c·5FWBfײuT7G&Å&VBb33c¶ÅdçWB¢á¥Ñ1½½À(¹MÝ¥Ñ (¹MÝ¥Ñ (]¹(UDelete($hLVChild) Return EndFunc Func _WM_Notify_Events($hWnÕRK ÌÍÓÙÒQ ÌÍÝÔ[K ÌÍÛ[JBØØ[ ÌÍÝ][6Âb33c·FtäÔE"ÒFÆÅ7G'V7D7&VFRgV÷C¶çC¶çC¶çBgV÷C²Âb33c¶Å&Ò%ÉɽÈQ¡¸IÑÕɸÀÌØíU%}IU95M(ÀÌØíÙÙ¹Ðô±±MÑÉÕÑtData($tagNMHDR, 3) If $wParam = $hLV Then If &#ÍÝ][HLÈ[ ÌÍÙÚPÒQHÕRPÝXY ÌÍÚBb33c¶w5FWBÒuT7G&Å&VBb33c¶v4B¢b33c¶vdfÆrÒG'(¹%(¹%(IÑÕɸÀÌØíU%}IU95M)¹Õ¹ Edited June 21, 2007 by PaulIA Auto3Lib: A library of over 1200 functions for AutoIt Link to comment Share on other sites More sharing options...
piccaso Posted June 21, 2007 Share Posted June 21, 2007 acts normal here... v 3.2.4.9 & Xp sp2 CoProc Multi Process Helper libraryTrashBin.nfshost.com store your AutoIt related files here!AutoIt User Map Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted June 21, 2007 Author Moderators Share Posted June 21, 2007 I'm guessing that you're talking about the problem when you double click on the ListView and it freezes? If so, the problem isn't with the DllStruct* functions. You're hooking the WM_NOTIFY event and then displaying a dialog box in the middle of the event. Per the AutoIt help file on GUIRegisterEvent:It's not an AutoIt problem as you'd have the same problem in any language AFAIK. Typically, what you want to do is set a global flag in your event handler that indicates the event has happened and then monitor that flag in your main GUIGetMsg() loop. You can then safely launch your other code from there without causing any problems.That's what I did do as a matter of fact ... I was unaware of the GUIRegisterEvent issue thanks. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now