Prüfen ob irgendeine Taste gedrückt wird

  • abend,

    kennt einer eine Funktion in autoit mit der ich prüfen kann, ob irgendeine Taste gedrückt wird und diese taste dann zurückgibt?
    _isPressed und HotKeySet prüfen ja leider nur eine bestimmte Taste.

    Danke schon mal für alle Antworten.

    Einmal editiert, zuletzt von twister (31. Juli 2008 um 10:58)

    • Offizieller Beitrag

    Hallo

    Ich hab dir mal was umgeschrieben, was ich bei der M$ Knowledge gefunden hab:

    Spoiler anzeigen
    [autoit]

    ToolTip("Drücke irgendeine Taste")

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

    $pKeyPress = DllCallbackRegister("_KeyPress", "lparam", "int;wparam;lparam")
    $hMod = DllCall("kernel32.dll", "ptr", "GetModuleHandle", "ptr", 0x00)
    $hKeyboardLL = DllCall("user32.dll", "ptr", "SetWindowsHookEx", "int", 0x0D, "ptr", DllCallbackGetPtr($pKeyPress), "ptr", $hMod[0], "dword", 0)

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

    $KeyPressed = False

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

    While Not $KeyPressed
    Sleep(100)
    WEnd
    ToolTip("")

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

    MsgBox(0, "", "Danke :)")

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

    ;Wenn eine Taste gedürckt wurde und
    Func _KeyPress($iCode, $wParam, $lParam)
    If $iCode = 0 Then $KeyPressed = True
    Return _NextHook($hKeyboardLL[0], $iCode, $wParam, $lParam)
    EndFunc ;==>_KeyPress

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

    Func _NextHook($hKLL, $iCode, $wParam, $lParam)
    Local $aRet = DllCall("user32.dll", "lparam", "CallNextHookEx", "ptr", $hKLL, "int", $iCode, "wparam", $wParam, "lparam", $lParam)
    Return $aRet[0]
    EndFunc ;==>_NextHook

    [/autoit]

    Mehr werden wir dir hier nicht helfen, da wir keine Keylogger unterstützen.

    Mfg Spider

  • Was genau macht das erste Abschnitt. Ich habe auhc schonmal so eine Frage gestellt aber mir hat keiner geantwortet.
    Was ich machen wollte war zumbeisiel wenn man S drückt dann wird pro sek 10x Mauslinke taste gedrückt.. (wenns natürlich soviel schafft innerhalb ne sekunde). Halt ne Autoklicker. Dann wollte ich eine Menü und Option machen wo jeder seine Eigene Hotkey machen kann. "Bitte Hotkey setzen".

    Ich kapier gar net was ptr oder so heißen soll lol

  • GTASpider, dein Code ist mir noch zu kompliziert, ich muss mir mal in der hilfe was über dlls durchlesen vlt versteh ichs dann :D

    und soll das eine Unterstellung sein oder meinst du weil das hier ein für jeden einsehbares Forum ist?
    es geht dabei um ein Hotkey der vom User bestimmt werden kann.

    Was ist das für ein Wert, den ich bei _isPressed eingeben muss, ein Hex?

  • ich weiß gar nicht mehr wer die mal geschrieben hat, aber evtl. kannste damit was anfangen.

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>

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

    WaitAnyKey()

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

    Func WaitAnyKey()
    While 1
    For $i = 0 To 255
    If _IsPressed(Hex($i,2)) Then
    MsgBox(0,"Test","Taste " & Hex($i,2) & " gedrückt!")
    ; ConsoleWrite("Taste " & Hex($i,2) & " gedrückt!" & @CRLF)
    ExitLoop 2
    EndIf
    Next
    Sleep(50)

    WEnd
    EndFunc

    [/autoit]

    Grüße mal aus den sommersonnigen Flensburg. NOCH !!!
    ;) Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Danke für den Code crazy-A das is ja auch der Weg zu dem mich Blubbstar leiten wollte.
    Guter tipp GTASpider die hat ich mir mal in einer txt datei abgespeicert.

    ich hab mir jetz eine ellenlange funktion geschrieben die Hex Zahlen zu Tasten umwandelt. :D

    Danke für die hilfe Leute