Hab ein Script das eine zweite Form über einen Button startet gemacht startet gemacht….
Aber nach dem öffnen ( und Schließen der zweiten Form ) geht mein Script einfach nicht weiter….
So sieht mein Script momentan aus:
Spoiler anzeigen
;~ ---------------------------------------------------------erste Form-----------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Tastatur", 598, 257, 192, 157)
$q = GUICtrlCreateButton("q", 16, 88, 35, 33, $WS_GROUP)
$w = GUICtrlCreateButton("w", 48, 88, 35, 33, $WS_GROUP)
$e = GUICtrlCreateButton("e", 80, 88, 35, 33, $WS_GROUP)
$r = GUICtrlCreateButton("r", 112, 88, 35, 33, $WS_GROUP)
$t = GUICtrlCreateButton("t", 144, 88, 35, 33, $WS_GROUP)
$z = GUICtrlCreateButton("z", 176, 88, 35, 33, $WS_GROUP)
$u = GUICtrlCreateButton("u", 208, 88, 35, 33, $WS_GROUP)
$i = GUICtrlCreateButton("i", 240, 88, 35, 33, $WS_GROUP)
$o = GUICtrlCreateButton("o", 272, 88, 35, 33, $WS_GROUP)
$p = GUICtrlCreateButton("p", 304, 88, 35, 33, $WS_GROUP)
$u2 = GUICtrlCreateButton("ü", 336, 88, 35, 33, $WS_GROUP)
$a = GUICtrlCreateButton("a", 24, 120, 35, 33, $WS_GROUP)
$s = GUICtrlCreateButton("s", 56, 120, 35, 33, $WS_GROUP)
$d = GUICtrlCreateButton("d", 88, 120, 35, 33, $WS_GROUP)
$f = GUICtrlCreateButton("f", 120, 120, 35, 33, $WS_GROUP)
$g = GUICtrlCreateButton("g", 152, 120, 35, 33, $WS_GROUP)
$h = GUICtrlCreateButton("h", 184, 120, 35, 33, $WS_GROUP)
$j = GUICtrlCreateButton("j", 216, 120, 35, 33, $WS_GROUP)
$k = GUICtrlCreateButton("k", 248, 120, 35, 33, $WS_GROUP)
$l = GUICtrlCreateButton("l", 280, 120, 35, 33, $WS_GROUP)
$o2 = GUICtrlCreateButton("ö", 312, 120, 35, 33, $WS_GROUP)
$a2 = GUICtrlCreateButton("ä", 344, 120, 35, 33, $WS_GROUP)
$y = GUICtrlCreateButton("y", 32, 152, 35, 33, $WS_GROUP)
$x = GUICtrlCreateButton("x", 64, 152, 35, 33, $WS_GROUP)
$c = GUICtrlCreateButton("c", 96, 152, 35, 33, $WS_GROUP)
$v = GUICtrlCreateButton("v", 128, 152, 35, 33, $WS_GROUP)
$b = GUICtrlCreateButton("b", 160, 152, 35, 33, $WS_GROUP)
$n = GUICtrlCreateButton("n", 192, 152, 35, 33, $WS_GROUP)
$m = GUICtrlCreateButton("m", 224, 152, 35, 33, $WS_GROUP)
$komma = GUICtrlCreateButton(",", 256, 152, 35, 33, $WS_GROUP)
$punkt = GUICtrlCreateButton(".", 288, 152, 35, 33, $WS_GROUP)
$Enter = GUICtrlCreateButton("Enter", 320, 152, 67, 33, $WS_GROUP)
$Select = GUICtrlCreateButton("Select", 13, 24, 70, 33, $WS_GROUP)
$Leertaste = GUICtrlCreateButton("Leertaste", 40, 184, 331, 33, $WS_GROUP)
$grossKlein = GUICtrlCreateButton("^", 504, 208, 75, 33, $WS_GROUP)
$back = GUICtrlCreateButton("<-", 504, 176, 75, 33, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Select
Sleep ( 3000 )
$Input1 = WinGetTitle("[active]")
$hHandle = WinGetHandle($Input1)
[/autoit] [autoit][/autoit] [autoit]$Input2 = ControlGetFocus($Input1)
;~ ---------------------------------------------------zweite Form--------------------------------------------------------------------------------
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Tastatur = GUICreate("Tastatur", 478, 182, 195, 124)
$ZielfensterFestgelegt = GUICtrlCreateLabel("Zielfenster festgelegt.", 16, 16, 102, 25)
$Control = GUICtrlCreateLabel("Control:", 16, 64, 53, 25)
$Label1 = GUICtrlCreateLabel( $Input2&"", 104, 64, 348, 25)
$Titel = GUICtrlCreateLabel("Titel:", 16, 112, 56, 33)
$Label2 = GUICtrlCreateLabel($Input1&"", 104, 112, 356, 33)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
GUIDelete()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndSwitch
WEnd
;~ ------------------------------------------------------Funcs erste form--------------------------------------------------------------------------------
Case $a2
ControlSend ($Input1, "", $Input2, "ä", 0 )
Case $o2
ControlSend ( $Input1, "", $Input2, "ö", 0 )
Case $u2
ControlSend ($Input1, "", $Input2, "ü", 0 )
Case $komma
ControlSend ( $Input1, "", $Input2, ",", 0 )
Case $punkt
ControlSend ( $Input1, "", $Input2, ".", 0 )
Case $grossKlein
ControlSend ( $Input1, "", $Input2, "{CAPSLOCK on}", 0 )
Case $back
ControlSend ( $Input1, "", $Input2, "{BACKSPACE}", 0 )
Case $Enter
ControlSend ( $Input1, "", $Input2, "{ENTER}", 0 )
Case $Leertaste
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, " ", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]case $a
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "a", 0 )
[/autoit] [autoit][/autoit] [autoit]Case $b
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "b", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $c
[/autoit] [autoit][/autoit] [autoit]ControlSend ($Input1, "", $Input2, "c", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $d
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "d", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $e
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "e", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $f
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "f", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $g
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "g", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $h
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "h", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $i
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "i", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $j
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "j", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $k
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "k", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $l
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "l", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $m
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "m", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $n
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "n", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $o
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "o", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $p
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "p", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $q
[/autoit] [autoit][/autoit] [autoit]ControlSend ($Input1, "", $Input2, "q", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $r
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "r", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $s
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "s", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $t
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "",$Input2, "t", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $u
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "u", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $v
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "v", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $w
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "w", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $x
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "x", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $y
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "y", 0 )
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Case $z
[/autoit] [autoit][/autoit] [autoit]ControlSend ( $Input1, "", $Input2, "z", 0 )
EndSwitch
WEnd
So sieht der Vorschlag von autoBert aus: [spoiler/]
[autoit]include <GUIConstantsEx.au3>
#include<WindowsConstants.au3>
Global $idGui1, $idGui2=-99, $idMsgBox, $idZurueck, $idbtnExit2
_CreateGui2() ;entweder hier oder erst wenn benötigt ($idbtmToGui2 Klick)
$idGui1 = GUICreate('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $idGui1 gespeichert
;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar
GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
$idbtnToGui2 = GUICtrlCreateButton('&Aufruf GUI 2', 20, 20, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnICQ = GUICtrlCreateButton('&ICQ', 20, 50, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "ICQ" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnExit1 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "Afruf Gui 2" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
GUISetState(@SW_SHOW, $idGui1)
[/autoit][autoit][/autoit][autoit]While 1
$nMsg = GUIGetMsg(1) ;extended Modus wichtig!!
Switch $nMsg[1] ;für welches Fenster ist die Message
Case $idGui1 ;ab hier ist Gui 1 dran
Switch $nMsg[0] ;welche Message wurde ausgelöst
Case $idbtnToGui2
GUISetState(@SW_Hide, $idGui1) ;Gui 1 verstecken, damit nur Gui2 sichtbar ist und bearbeitet werden kann
;If $idGui2 = -99 Then _CreateGui2();nur wenn nicht am Anfang bereits erzeugt nötig, dann auf Vorbelegung der Variable in Global achten)
GUISetState(@SW_SHOW, $idGui2) ;Gui 2 anzeigen
Case $idbtnICQ
MsgBox(0,"","Jetzt würde ICQ gestartet")
;Run("C:\Program Files\ICQ7.0\ICQ.exe")
Case $idbtnExit1, $GUI_EVENT_CLOSE
_end()
EndSwitch
Case $idGui2 ;ab hier ist Gui 2 dran
Switch $nMsg[0] ;welche Message wurde ausgelöst
Case $idMsgBox
MsgBox(0, 'Test', 'Test', 0, $idGui2)
Case $idZurueck, $GUI_EVENT_CLOSE
GUISetState(@SW_Show, $idGui1) ;Gui 1 wieder anzeigen
GUISetState(@SW_HIDE, $idGui2) ;Gui 2 verstecken
Case $idbtnExit2
_end()
EndSwitch
EndSwitch
WEnd
Func _CreateGui2()
$idGui2 = GUICreate('GUI 2', 500, 300, 200, 50, -1, -1, $idGui1) ;wichtig ist der letzte Parameter
;erzeugt eine GUI als Child von Gui1, die zurückgebebene ID wird in der Variablen $idGui2 gespeichert
$idMsgBox = GUICtrlCreateButton('&MsgBox', 20, 20, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "MsgBox" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idZurueck = GUICtrlCreateButton('&Zurück zu GUI 1', 20, 50, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "zurück" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
$idbtnExit2 = GUICtrlCreateButton('be&enden', 20, 80, 100, 21)
GUICtrlSetResizing(-1, $GUI_DOCKSIZE + $GUI_DOCKLEFT + $GUI_DOCKTOP)
;verankert den Button "beenden" links und oben und fixiert die Größe
;beim Resizen bleibt es dadurch auf seiner Position am rechten Rand
EndFunc ;==>_CreateGui2
Func _end()
GUIDelete($idGui2)
GUIDelete($idGui1)
Exit
EndFunc ;==>_end
[/spoiler]
Für diese Möglichkeit müsste ich aber mein Script noch mal komplett umschreiben, gibt es vielleicht noch eine andere Möglichkeit?