Tastendrücke zählen

  • hallo leute,
    erstmal ich habe gesucht weil ich wirklich dachte sowas gibts schon, aber find nur keylogger und sowas^^

    also ich möchte ein skript das jeden tastendruck zählt und vl alle 1000 anschläge einen tooltip oder so anzeigt
    es muss nicht unbedingt die ganzen F-Tasten und die anderen wie entf, pos 1 usw mitzählen
    aber sonst alle tasten die dazu dienen einen text zu schreiben, also auch die sonderzeichen

    ich möchte jetzt aber nicht für jede taste einen hotkey schreiben, auserdem würde der die taste ja belegen wodurch ich dann wieder einen send machen müsste (fals das überjhaupt klappt)

    also wie realisier ich das

    Einmal editiert, zuletzt von BugFix (18. August 2008 um 08:03)

  • da müsst ich auch jede taste einzeln abfragen
    ist das nciht auch ein performanceschwund?!?! bremsen soll das programm natürlich nicht

    • Offizieller Beitrag

    Hiermit kannst du alle Tastendrücke zählen (Maus zählt auch als Taste). Wenn du bestimmte Werte nicht prüfen willst, mußt du deren Hexwert aus der Prüfung in der Schleife rauslassen.

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}", "ende")
    Global $dll = DllOpen("user32.dll")
    While _SomeKeyPressed() ; Tastaturpuffer leeren
    WEnd

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

    $count = 0
    While 1
    Sleep(100)
    If _SomeKeyPressed() Then
    $count += 1
    ConsoleWrite("Eine Taste wurde gedrückt (" & $count & ")" & @LF)
    EndIf
    WEnd

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

    Func ende()
    DllClose($dll)
    Exit
    EndFunc

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

    Func _SomeKeyPressed()
    Local $ret
    For $i = 1 To 256
    $ret = DllCall($dll, "int", "GetAsyncKeyState", "int", "0x" & Hex($i, 2))
    If $ret[0] <> 0 Then Return 1
    Next
    Return 0
    EndFunc

    [/autoit]