HotKeySet, Taste gedrückt halten

  • Heyho,

    ich habe zurzeit ein Skript, dass ich per Hotkey starte und beende. Dazu habe ich zwei verschiedene Hotkeys. Ein, um das Skript zu starten, und ein, um das Skript zu beenden.

    Ich würde es nun aber gerne so haben, dass das Skript gestartet wird, sobald ich den Hotkey runterdrücke, und beendet wird, sobald ich die Taste wieder loslasse. Das Skript soll also nur dann laufen, wenn ich die Taste gedrückt halte. Bei dem Send()-Befehl geht das ja per up und down.

    Ist es möglich dies auch bei HotKeySet hinzubekommen? Ich verwende {NUMPAD1} als Hotkey.

    Grüße ;)

  • Naja, bei mir steigt die CPU Auslastung um etwa 10% beim Programmstart. Danach bleibt sie konstant bei 3% - 5%.
    Zudem weiß ich auch garnicht was an _IsPressed() verwerflich sein soll.:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

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

    $hDLL = DllOpen('User32.dll')
    While Sleep(10)
    If _IsPressed('61', $hDLL) Then _Code() ; NUMPAD 1
    If _IsPressed('1B', $hDLL) Then Exit ; ESC
    WEnd
    DllClose($hDLL)

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

    Func _Code()
    ConsoleWrite('True' & @CRLF)
    EndFunc

    [/autoit]

    Alternativ kannst du ja mal schauen, ob du nicht irgendwie die WM_HOTKEY, WM_GETHOTKEY oder WM_SETHOTKEY Message dazu missbrauchen kannst. Die dazu passende Funktion auf msdn lautet RegisterHotKey.