Modify

Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#1617 closed Bug (Fixed)

Lockup: failed GuiCreate + undeleted window.

Reported by: anonymous Owned by: Jpm
Milestone: 3.3.7.0 Component: AutoIt
Version: 3.3.6.1 Severity: None
Keywords: lockup guicreate guidelete Cc:

Description

;; when window 2* is not deleted before the failing GUICreate, AutoIt locks up in its exit process.
;; *) or any additional created windows after startup. (but not the first initial created window.)
;; exit process) after any OnExit processing. (seems like a endless loop case in its final exit process)
;; - not tested with other 'force GUICreate error' values.
;; >Running:(3.3.6.1):Environment(Language:0409  Keyboard:00000409  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)

	Dim $hWnd1, $hWnd2, $hWnd3, $hWnd9, $iStyle, $iStyleExt

	$hWnd1 = GUICreate('GUI-1 test')
	$hWnd2 = GUICreate('GUI-2 test')
	GUISetState(@SW_SHOW) ;; not needed to trigger problem.
;~ 	$hWnd3 = GUICreate('GUI-3 test')
;~ 	GUISetState(@SW_SHOW) ;; not needed to trigger problem.

	ConsoleWrite('GUIDelete($hWnd1) = ' & GUIDelete($hWnd1) & @CRLF)
	ConsoleWrite('GUIDelete($hWnd2) = ' & GUIDelete($hWnd2) & @CRLF)
;~ 	ConsoleWrite('GUIDelete($hWnd3) = ' & GUIDelete($hWnd3) & @CRLF)

	$iStyle = 1409286144 ;; force GUICreate error.
	$iStyleExt = 256
	$hWnd9 = GUICreate('GUI-9 test', -1, -1, -1, -1, $iStyle, $iStyleExt)

;~ 	ConsoleWrite('[9] $hWnd9=' & $hWnd9 & ', @err=' & @error & ', @ext=' & @extended & @CRLF)
;~ 	ConsoleWrite('[9] $hWnd9=' & $hWnd9 & ', $iStyle=' & $iStyle & ', $iStyleExt=' & $iStyleExt & @CRLF)

@jpm: Wow. That list is getting smaller every day. (or: Thanks for your work) :)

Change History (9)

comment:1 Changed 15 years ago by anonymous

Hum, Number don't say that much: 1409286144 is a mix of the default GUI-Style value minus $GUI_SS_DEFAULT_GUI and plus $WS_CHILD value.

BitAND($iStyle, BitNOT($GUI_SS_DEFAULT_GUI))
BitOR($iStyle, $WS_CHILD)

Just in case.

comment:2 Changed 15 years ago by Jpm

Thanks for your support.
I am not sure to understand how the complete script works.
When you say OnExit are you using OnAutoItExitRegister?

From under Win7 everything is fine I will check under WinXP

The failing creation use

$iStyle = BitOr($WS_CHILD, $WS_VISIBLE, $WS_CLIPSIBLINGS) ; 0x54000000 ;1409286144 ;; force GUICreate error.
$iStyleExt = $WS_EX_WINDOWEDGE ; 256

comment:3 Changed 15 years ago by Jpm

I test with the attached script with no error under XP

#include <WindowsConstants.au3>

OnAutoItExitRegister("MyTestFunc")

	Local $hWnd1, $hWnd2, $hWnd3, $hWnd9, $iStyle, $iStyleExt

	$hWnd1 = GUICreate('GUI-1 test',default,default, 100, 100)
	GUISetState(@SW_SHOW) ;; not needed to trigger problem.
	$hWnd2 = GUICreate('GUI-2 test')
	GUISetState(@SW_SHOW) ;; not needed to trigger problem.

	_ConsoleWrite('GUIDelete($hWnd1) = ' & GUIDelete($hWnd1) & @CRLF)
	_ConsoleWrite('GUIDelete($hWnd2) = ' & GUIDelete($hWnd2) & @CRLF)

;~ 	ConsoleWrite('GUIDelete($hWnd3) = ' & GUIDelete($hWnd3) & @CRLF)

	$iStyle = 	BitOr($WS_CHILD, $WS_VISIBLE, $WS_CLIPSIBLINGS)	; 1409286144 ;; force GUICreate error.
	$iStyleExt = $WS_EX_WINDOWEDGE			; 256
	$hWnd9 = GUICreate('GUI-9 test', -1, -1, -1, -1, $iStyle, $iStyleExt)

;~ 	ConsoleWrite('[9] $hWnd9=' & $hWnd9 & ', @err=' & @error & ', @ext=' & @extended & @CRLF)
;~ 	ConsoleWrite('[9] $hWnd9=' & $hWnd9 & ', $iStyle=' & $iStyle & ', $iStyleExt=' & $iStyleExt & @CRLF)

Func MyTestFunc()
    MsgBox(64, "Exit Results 1", 'Exit Message from MyTestFunc()')
EndFunc

Func _ConsoleWrite($msg)
	MsgBox(262144,'_ConsoleWrite' , $msg)
EndFunc

comment:4 Changed 15 years ago by anonymous

Disable the "GUIDelete($hWnd2)" part to make it lockup.
(got to go right now, be back later)

comment:5 Changed 15 years ago by anonymous

(Same anonymous, differand location)
Alternitive (or better), move the "GUIDelete($hWnd2)" below the "$hWnd9 = GUICreate('GUI-9 test',...". And drop in a hotkey-waiting loop after the "GUIDelete($hWnd2)"
This shows that the $hWnd2 window failed to deleted. Witch is probely wy AutoIt locks up in its exit process. (can't test anything at my current location.)

comment:6 follow-up: Changed 15 years ago by Jpm

Yes the new repro with the move of GUIDelete($hWnd2) reproduce the behavior.
Now I can really investigate.
Stay tune.

comment:7 Changed 15 years ago by Jpm

  • Milestone set to 3.3.7.0
  • Owner set to Jpm
  • Resolution set to Fixed
  • Status changed from new to closed

Fixed by revision [5812] in version: 3.3.7.0

comment:8 Changed 15 years ago by anonymous

:)

---
Off topic:
While taking my time to write a (none posted) reply. Jpm dropped in a reply.
Instead of loosing the message I got a nice notification about the situation. (Thanks 2)

comment:9 in reply to: ↑ 6 Changed 15 years ago by MrCreatoR <mscreator@…>

Replying to Jpm:

Yes the new repro with the move of GUIDelete($hWnd2) reproduce the behavior.
Now I can really investigate.
Stay tune.

Actualy you can reproduce the bug (GUICreate related) with only two lines:

$hGUI = GUICreate('', -1, -1, -1, -1, -1, 0x40000000) ; $WS_CHILD = 0x40000000
ConsoleWrite("@error: " & @error & @CRLF & "$hGUI: " & $hGUI & @CRLF)

And i think the lockup issue is somehow related to ticket #1618 (ShellExecute("C:\") causes script hanging, i have posted it before i have seen this one).

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.