Tastendruck in Textfeld schreiben

  • Guten Tag,

    Ich habe ein Problem, bei welchem ihr mir hoffentlich helfen könnt.

    Und zwar will ich, dass wenn man ins Textfeld klickt, da keine Eingabe machen, jedoch eine beliebige Taste drücken kann.
    Diese soll anschliessend im Textfeld stehen (immer nur eine Taste).

    Bsp:
    Wenn man ins Textfeld klickt und F4 drückt, soll im Textfeld "F4" stehen.

    Ist das irgendwie möglich?


    Besten Dank im Voraus und freundliche Grüsse
    V3xX

  • Danke für deine Hilfe,

    aber wenn ich diese Funktion richtig verstanden habe, müsste ich auf diese weise zwangsmässig ein Switch machen, dass jede Taste abfragt, wäre dies auch auf eine andere weise möglich, wo die Gedrückte Taste erkennt?


    freundliche Grüsse
    V3xX

  • nicht dass ich wüsste zumindest kenn ich im Zusammenhang damit nur

    [autoit]

    HotKeySet
    _IsPressed

    [/autoit]


    Allerdings brauchst du ja nur die Sondertasten extra abfangen welche ja nicht soo viele sind da die anderen ja sowieso rein geschrieben werden wenn die inputbox Fokus hat

  • Mit ein bisschen überlegen und ein wenig Hilfe von einem Freund bin ich auf folgende Lösung für die Abfrage des Keys gekommen:

    [autoit]

    #Include <Misc.au3>
    $dll = DllOpen("user32.dll")
    $pressed = 1
    While $pressed
    for $i=0 to 255 Step 1
    $o = Hex($i, 2)
    if _IsPressed($o, $dll) then
    MsgBox(0, "", "Key with Hex "&$o&" pressed")
    $pressed = 0
    EndIf
    Next
    WEnd
    DllClose($dll)

    [/autoit]

    nun muss ich jedoch noch die Taste selbst herausfinden.
    Kann man irgendwie AutoIT-intern eine Art Datenbank erstellen, wo ich den String der Taste mit der Hex-Zahl hinterlegen kann und diese dann abfragen?


    EDIT: ich habe es nun doch anders gelöst, da es auf diese Weise für meine Anwendung nicht ganz funktioniert.


    freundliche Grüsse
    V3xX

    PS: deine Signatur gefällt mir :D

    Einmal editiert, zuletzt von V3xX (7. Dezember 2010 um 12:16)

  • Naja soweit gehts klar noch aber wenn du weiterkommen willst musst du am besten die nr(0-255, hex unnötig) mit zugehöriger Taste in ne ini schreiben und dann:

    [autoit]

    #Include <Misc.au3>

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

    Local $exitLoop = False
    While Not $exitLoop
    For $i = 0 to 255 Step 1
    if _IsPressed($i) Then
    MsgBox(0, "", "Key " & $i & " pressed")
    $exitLoop = True
    ExitLoop
    EndIf
    Next
    WEnd
    IniRead("test.ini","keys",$i)

    [/autoit]

    Falls es für dich nicht Funktioniert hat weil die Abfrage dein Skript blockiert:

    [autoit]

    AdLibRegister

    [/autoit]