Hallo Gemeinde,
Ich hab mal wieder ein ein kleines Problem.
Und zwar in folgendem Skript füge ich ein GUI in eine anderes ein, ich embedde es.
Das ding es is kein IE Object o.ä. sondern ein selbsterzeugtes GUI. Funkst alles super bis auf das das Embedded GUI immer den Fokus und Funktionsfähigkeit des MainGUIs klaut.
Was meine ich mit Funktionsfähigkeit, ganz einfach man kann nix mehr damit machen geschweige denn Schließen.
Das Skript
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
$MainGui = GUICreate("Hallo", 500, 500, 0,0)
$2GUI = GUICreate("2",200,200,100,100)
GUISetState(@SW_SHOW,$MainGui)
GUISetState(@SW_SHOW,$2GUI)
_Embedded_Create($MainGui, $2GUI)
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1]
Case $MainGui
GUISwitch($MainGui)
If $nMsg[0] = $GUI_EVENT_CLOSE Then Exit
Case $2GUI
GUISwitch($2GUI)
If $nMsg[0] = $GUI_EVENT_CLOSE Then Exit
EndSwitch
WEnd
;===============================================================================
;
; Description: Bettet ein anderes Programm (.exe) in eine Gui ein
; Parameter(s): $hwnd - Handle der Gui
; $path - Pfad des zu einbettenden Programmes
; $title - Titel des Fensters des Programmes das eingebettet werden soll
; $x - X-Positon des Controls in der Gui
; $y - Y-Position des Controls in der Gui
; $width - Weite des Controls in der Gui
; $height - Höhe des Controls in der Gui
; Requirement(s): user32.dll
; Return Value(s): erolgreich: Control-ID für _Embedded Controls
; fehlgeschlagen: 0, @error auf 1
; Author(s): stayawayknight n bissle von mir umgeschrieben
;===============================================================================
Func _Embedded_Create($MainGui, $Embedded)
$style = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $Embedded, "int", 236)
DllCall("user32.dll", "int", "SetWindowLong", "hwnd", $Embedded, "int", 236, "int", BitOR($style[0], $WS_EX_MDICHILD))
DllCall("user32.dll", "int", "SetParent", "hwnd", $Embedded, "hwnd", $MainGui)
EndFunc ;==>_Embedded_Create
EDIT:
Ich hab die Befürchtung das könnte an dem fehlenden Multitasking/Threading von Autoit liegen
Oder fahr ich in die völlig falsche Richtung
Danke schon mal im Vorraus