HotKeySet hält Strg-Taste gedrückt

  • Hallo zusammen,
    ich habe bei der HotKeySet-Funktion in AutoIt v3 das Problem, dass die Strg-Taste gedrückt bleibt, wenn man die Tastenkombination Strg+1 einmal ausgeführt hat.
    Das Problem konnte ich bereits auf verschiedenen Rechnern reproduzieren (XP und Vista).
    Erst wenn man die Strg-Taste nach Ausführung des Skripts erneut drückt, wird die Einrastung deaktiviert.

    [autoit]

    HotKeySet("^1","MyFunction")

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

    Func MyFunction()
    Send("Wert1" & "{ENTER}")
    Send("Wert2" & "{ENTER}")
    Send("Wert3" & "{ENTER}")
    EndFunc

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

    While 1
    Sleep(100)
    WEnd

    [/autoit]

    Wenn ich in der MyFunction() nur einen einzigen Send-Befehl absetze, tritt das Problem übrigens nicht auf.
    Hat jemand eine Idee, woran das liegen könnte?


    Gruß,
    Michael

  • Folgendes Workaround würde mir spontan einfallen. Ich schau mal ob ich noch einfachere Möglichkeiten finde

    [autoit]

    #include <Misc.au3>

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

    Func MyFunction()
    Send("Wert1" & "{ENTER}")
    Send("Wert2" & "{ENTER}")
    Send("Wert3" & "{ENTER}")
    EndFunc ;==>MyFunction

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

    Func _CheckHK()
    If _IsPressed(11) And _IsPressed(31) Then ; ^1
    Do
    Sleep(10)
    Until Not _IsPressed(11) Or Not _IsPressed(31)
    MyFunction()
    EndIf
    EndFunc ;==>_CheckHK

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

    While 1
    Sleep(100)
    _CheckHK()
    WEnd

    [/autoit]
  • Zunächst einmal vielen Dank für die schnelle Antwort!
    Aber leider hält auch der Workaround die Strg-Taste weiterhin gedrückt.
    Habe schon diverse Versuche durchgeführt, meinen Workaround (manuelles Drücken der Strg-Taste nach Ablauf des Skripts) zu automatisieren.
    Das schaffte aber alles keine Abhilfe.

  • Vielen Dank! Der Workaround funktioniert jetzt!
    Ist nur gewöhnungsbedürftig, dass die Aktion erst beim Loslassen startet :D

    Da in einer Funktion ja eigentlich mehrere Send-Befehle vorkommen dürfen sollten, gehe ich mal von einem Bug in AutoIt v3 aus.