AutoIt: Tastatureingabe auslesen

GregoryH

Lt. Commander
Registriert
Aug. 2010
Beiträge
1.848
Ja, ich weiß das hört sich nach Keylogger an, vom Prinzip ists auch sowas in die Richtung, ich benutze es aber um mein script im spiel einzustellen.

Das Problem das sich mir stellt, in AutoHotKey gibt es eine Funktion, die nennt sich "Input". Codebeispiel:

Code:
!NumpadAdd::
    Input, slot1_number, L2
    SoundBeep, 750, 250
Return
Ich drücke Alt+NumpadAdd und gebe danach 2 Zahlen ein, es biept und speichert die Anzahl in slot1. Super, genau so solls sein!

Da AutoIt aber in vielem wesentlich flüssiger funktioniert, würde ich das ganze gerne auch in AutoIt realisieren. ich habe keine einfache Funktion gefunden mit der ich etwas vergleichbares in AutoIt realisieren kann:

Alt+NumpadAdd drücken, er lauscht die nächsten 2 Zeichen der Tastatur ab und speichert sie in einer Variable ab. Fertig!

Jemand ne idee?

Gruß
G.
 
Ich kenne leider nur die Methode eine lange Liste an HotKeySet Befehlen zu schreiben.
Das ist aber ganzschön nervig mit allen Zeichen und co. Frag am besten mal in dem autoitforum nach, die haben da eindeutig mehr Ahnung ^^. http://autoit.de/
 
Alles klar, so hab ichs jetzt auch gemacht, sind ja, da es nur um zahlen geht, 20 stück;)
 
Ich denke sowas könnte passen
Code:
#include <GUIConstantsEx.au3>


HotKeySet("!{NUMPADADD}", "Input") ;Alt-"NumPad+"

While 1
    Sleep(100)
WEnd

Func Input()
    GUICreate("Input", 160, 100, @DesktopWidth / 2 - 80, @DesktopHeight / 2 - 50, -1)
    Local $input= GUICtrlCreateInput("", 10, 10, 50, 24)
    GUISetState()

    Local $msg = 0
    While $msg <> $GUI_EVENT_CLOSE
        $msg = GUIGetMsg()
        Select
            Case $msg = $input
                ExitLoop
        EndSelect
    WEnd
	
    Local $i= GUICtrlRead($input)
    GUIDelete()

    MsgBox(4096, "i", $i)
EndFunc
Du musst nur noch "MsgBox(4096, "i", $i)" durch Deinen Code für die Eingabe "$i" ersetzen.


HTH

BigNum
 
Zurück
Oben