WM_KEYUP funktioniert nur bei Tasten der Tastatur?

  • Hallo

    ich habe die folgende Funktion, die registriert, wenn eine bestimmte Taste losgelassen wird, GUIRegisterMsg($WM_KEYUP, "WM_KEYUP"). Leider funktioniert das nur bei Tasten der Tastatur wie a, s, d, etc. und nicht bei Maustasten (ich brauche nur die linke und rechte Maustaste).

    Im Beispiel unten wird korrekt registriert, wenn "a" losgelassen wird, aber nicht die linke oder rechte Maustaste:

    [autoit]

    Func WM_KEYUP($hWnd, $msg, $wParam, $lParam)
    Switch $wParam
    Case 0x01 ; linke maustaste (funktioniert nicht)
    consolewrite("left up" & @CRLF)
    Case 0x02 ; rechte maustaste (funktioniert nicht)
    consolewrite("right up" & @CRLF)
    Case 0x41 ; a (funktioniert)
    consolewrite("a up" & @CRLF)
    EndSwitch
    Return 'GUI_RUNDEFMSG'
    EndFunc

    [/autoit]

    Wieso funktioniert das nicht? Ich habe auch schon andere Werte ausprobiert wie 0x0202 und 0x0205 (hier gefunden), aber leider funktioniert nichts. Weiß jemand wieso nicht?

    Danke

    Einmal editiert, zuletzt von pete_gzome (9. April 2012 um 22:08)

  • Danke für deine Antwort.

    Ich habe alle dort stehenden Codes ausprobiert, jedoch funktioniert keiner.

    Was mache ich nur falsch?

  • Ach ja, tut mir leid... jetzt geht es. Danke dir!

    Spoiler anzeigen
    [autoit]

    GUIRegisterMsg($WM_LBUTTONDOWN, "WM_LBUTTONDOWN")
    GUIRegisterMsg($WM_LBUTTONUP, "WM_LBUTTONUP")
    GUIRegisterMsg($WM_RBUTTONDOWN, "WM_RBUTTONDOWN")
    GUIRegisterMsg($WM_RBUTTONUP, "WM_RBUTTONUP")

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

    Func WM_LBUTTONDOWN($hWnd, $msg, $wParam, $lParam)
    consolewrite("left down" & @CRLF)
    Return 'GUI_RUNDEFMSG'
    EndFunc

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

    Func WM_LBUTTONUP($hWnd, $msg, $wParam, $lParam)
    consolewrite("left UP" & @CRLF)
    Return 'GUI_RUNDEFMSG'
    EndFunc

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

    Func WM_RBUTTONDOWN($hWnd, $msg, $wParam, $lParam)
    consolewrite("right down" & @CRLF)
    Return 'GUI_RUNDEFMSG'
    EndFunc

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

    Func WM_RBUTTONUP($hWnd, $msg, $wParam, $lParam)
    consolewrite("right UP" & @CRLF)
    Return 'GUI_RUNDEFMSG'
    EndFunc

    [/autoit]
  • warum benutzt du nicht _IsPressed() ?
    da hast du alle tasten :D

    mfg Yellow

    §1 Ich kann nicht für meine scripts inhaftiert werden, auch wenn bereits 3 Menschen erblindeten an den Folgen der Korrekturlesung.  8o