Virtuelle Tastatur

  • ja, dass mit dem, dass man ja eine tastatur braucht um die Iput fest zu legen stimmt.....

    DARUM habe ich das behoben!!!

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Tastatur", 598, 257, 750, 470,Default,$WS_EX_TOPMOST)

    [/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)

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

    MsgBox ( 64, "Zielerkennung", ""&$Input1&", "&$Input2&"" )
    If(WinActivate ( "Tastatur" )) Then
    EndIf

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

    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]

    einfach select drücken maus wo rein stellen, kurtz warten und Fenster und control werden ermittelt....


    über Tipps und feedbacks wehre ich sehr dankbar!

  • Funktioniert. Brauchen tu ichs aber wohl eher nicht, windows liefert sowas glaube ich im Übrigen auch mit (Erleichterte Bedienung oder so?).
    Vielleicht noch einbauen, dass die Großschreibung aktiv bleibt. Bei mir wird das nach einem Buchstaben wieder resetet, was im Normalfall auch sinnvoll erscheint, aber manchmal will man vielleicht auch mehrere Großbuchstaben in Folge schreiben. Ich würde die Tastatur außerdem noch um sämtliche Sonderzeichen und Zahlen erweitern und evtl auf das Standardlayout verzichten und stattdessen etwas größere Buttons und Beschriftungen verwenden. Das Teil benutzt man ja am ehesten aus der Ferne wenn die Tastatur nicht in Reichweite ist. Ein Rahmenloses Popupfenster mit slide in / out Funktion bei Mouseover irgendwo am Bildrand fixiert wäre dann noch das Sahnehäubchen.

    Nungut ich werds eher nicht benutzen, also sieh das eher als Anregung anstelle eines konkreten Wunsches.