OneEventMode

  • Hallo,
    Habe versucht dieses Script in den OneEventMode zu setzten:

    Spoiler anzeigen
    [autoit]

    ;~ ---------------------------------------------------------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)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $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 ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Select
    Sleep ( 3000 )
    $Input1 = WinGetTitle("[active]")

    [/autoit] [autoit][/autoit] [autoit]

    $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)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUIDelete()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ;~ ------------------------------------------------------Funcs erste form--------------------------------------------------------------------------------
    Case $a2
    ControlSend ($Input1, "", $Input2, "ä", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $o2
    ControlSend ( $Input1, "", $Input2, "ö", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $u2
    ControlSend ($Input1, "", $Input2, "ü", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $komma
    ControlSend ( $Input1, "", $Input2, ",", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $punkt
    ControlSend ( $Input1, "", $Input2, ".", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $grossKlein
    ControlSend ( $Input1, "", $Input2, "{CAPSLOCK on}", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $back
    ControlSend ( $Input1, "", $Input2, "{BACKSPACE}", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    Case $Enter
    ControlSend ( $Input1, "", $Input2, "{ENTER}", 0 )

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit][/autoit]


    So sieht mein Script jetzt aus(Momentan noch keine Funktionen und auch ansonsten fählen noch viele Sachen):

    Spoiler anzeigen
    [autoit]

    ;~ ---------------------------------------------------------erste Form-----------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate ('GUI 1', 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $q = GUICtrlCreateButton( 'q', 16, 88, 35, 33)
    $w = GUICtrlCreateButton('w', 48, 88, 35, 33)
    $e = GUICtrlCreateButton('e', 80, 88, 35, 33 )
    $r = GUICtrlCreateButton('r', 112, 88, 35, 33)
    $t = GUICtrlCreateButton('t', 144, 88, 35, 33)
    $z = GUICtrlCreateButton('z', 176, 88, 35, 33)
    $u = GUICtrlCreateButton('u', 208, 88, 35, 33)
    $i = GUICtrlCreateButton('i', 240, 88, 35, 33 )
    $o = GUICtrlCreateButton('o', 272, 88, 35, 33)
    $p = GUICtrlCreateButton('p', 304, 88, 35, 33)
    $u2 = GUICtrlCreateButton('ü', 336, 88, 35, 33)
    $a = GUICtrlCreateButton('a', 24, 120, 35, 33)
    $s = GUICtrlCreateButton('u', 56, 120, 35, 33)
    $d = GUICtrlCreateButton('d', 88, 120, 35, 33)
    $f = GUICtrlCreateButton('f', 120, 120, 35, 33)
    $g = GUICtrlCreateButton('g', 152, 120, 35, 33)
    $h = GUICtrlCreateButton('h', 184, 120, 35, 33)
    $j = GUICtrlCreateButton('j', 216, 120, 35, 33)
    $k = GUICtrlCreateButton('k', 248, 120, 35, 33)
    $l = GUICtrlCreateButton('l', 280, 120, 35, 33)
    $o2 = GUICtrlCreateButton('ö', 312, 120, 35, 33)
    $a2 = GUICtrlCreateButton('ä', 344, 120, 35, 33)
    $y = GUICtrlCreateButton('y', 32, 152, 35, 33)
    $x = GUICtrlCreateButton('x', 64, 152, 35, 33)
    $c = GUICtrlCreateButton('c', 96, 152, 35, 33)
    $v = GUICtrlCreateButton('v', 128, 152, 35, 33)
    $b = GUICtrlCreateButton('b', 160, 152, 35, 33)
    $n = GUICtrlCreateButton('n', 192, 152, 35, 33)
    $m = GUICtrlCreateButton('m', 224, 152, 35, 33)
    $komma = GUICtrlCreateButton(',', 256, 152, 35, 33)
    $punkt = GUICtrlCreateButton('.', 288, 152, 35, 33)
    $Enter = GUICtrlCreateButton('Enter', 320, 152, 67, 33)
    $Select = GUICtrlCreateButton('Select', 13, 24, 70, 33)
    $Leertaste = GUICtrlCreateButton('Leertaste', 40, 184, 331, 33)
    $grossKlein = GUICtrlCreateButton('^', 504, 208, 75, 33)
    $back = GUICtrlCreateButton('<-', 504, 176, 75, 33)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetOnEvent(-1, '_End')

    [/autoit] [autoit][/autoit] [autoit]

    Case $Select
    Sleep ( 3000 )
    $Input1 = WinGetTitle("[active]")

    [/autoit] [autoit][/autoit] [autoit]

    $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('title:', 16, 112, 56, 33)
    $Label2 = GUICtrlCreateLabel($Input1&'', 104, 112, 356, 33)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUIDelete()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndSwitch
    WEnd

    [/autoit]


    Irgendwie versteh ich nicht wie ich jetzt die Case Befehle machen soll…..

  • Im OnEventModus gibt es kein GuiGetMsg.
    Es geht immer nur eins von beiden

    Sieh dir doch mal in der Hilfe die Seite zum OnEvent Modus an.
    Da ist das egtl recht gut beschrieben

  • Also, du darfst dich am Anfang eines Scriptes entscheiden ob du den OnEventMode nimmst oder die GUIGetMsg Methode.
    Das 2te würde ich nur nehmen wenn du nicht oft vom MainLoop abweichst, sondern immer schön drin bleibst, da du sonst in "Sup Loops" überprüfen musst ob die Nachricht $GUI_EVENT_CLOSE kommt. In solchen Fällen ist der OnEventMode besser, ich würde ihn sowieso immer benutzen.

    Um den OnEventMode zu nutzen muss man am Anfang jedes Script diesen Modus einstellen durch

    [autoit]

    Opt ("GUIOnEventMode", 1)

    [/autoit]


    Du kannst ihn jeder zeit wieder austellen in dem du den 2ten Parameter auf 0 setzt.

    Zitat

    Aktiviert/Deaktiviert die OnEvent Funktionsanmeldung.
    0 = (Standard) deaktiviert.
    1 = aktiviert.

    Wenn du den OnEventMode eingestellt hast kannst du sagen, welche Funktion bei welcher GUI Nachricht aufgerufen werden soll.

    [autoit]

    #include <GUIConstants.au3>;Include damit wir $GUI_event_Close benutzen können, es geht auch -3
    Opt("GUIOnEventMode", 1);Der OnEventMode wird eingeschaltet (2ter Parameter 1)

    [/autoit][autoit][/autoit][autoit]

    GUICreate("OnEventMode");Gui wird erstellt
    GUISetOnEvent($GUI_EVENT_CLOSE, "_exit");Es wird gesagt das wenn von der GUI der Befehl $GUI_EVENT_CLOSE ausgeht, die Func _exit aufgerufen werden soll.

    [/autoit][autoit][/autoit][autoit]

    GUISetState();GUI wird sichtbar (es mit Parameter @SW_SHOW)
    ;;>> Mainloop
    While 1
    WEnd

    [/autoit][autoit][/autoit][autoit]

    ;;>> Die _exit Funktion die aufgerufen wird wenn $GUI_EVENT_COSE von der GUI aus kommt.
    Func _exit()
    Exit
    EndFunc ;==>_exit

    [/autoit]


    (Als 3ten, optionalen Parameter in GUISetOnEvent kannst du auch das Winhandle angeben.)

    Ich hoffe du hast alles verstanden, wenn nicht kann ich auch nichtmehr helfen.