Hejo
Ich würd gern diverse Sachen mit Hotkeys machen. Allerdings kann man per HotkeySet() den Funktionen keine Parameter überliefern, weswegen es sehr kompliziert und häßlich wär nachträglich alle Funktionen zu zerstückeln dafür.
Einfacher wäre es mit _isPressed(). Blöderweise wird das aber nicht zuverlässig ausgeführt, wenn ich eine zugewiese Taste drücke wird die angewiesene Aktion gerne 2 oder 3 mal ausgeführt, im folgenden Beispiel werden so zb manchmal statt einem gleich 2 "x" an Notepad gesendet. Anscheinend ist das weil HotkeySet() die Windows-Toleranz für Tastendrücke verwendet, während _isPressed() in diesem Fall jeden Tastendruck der über 50ms liegt erneut ausführt. Kann man die Zeit global anpassen oder besser noch HotkeySet() irgendwie doch mit Parametern verwenden?
Spoiler anzeigen
#include <Misc.au3>
[/autoit] [autoit][/autoit] [autoit]Opt("WinTitleMatchMode",2)
Global $titel = "[TITLE:Editor;CLASS:Notepad]" ; Editor / notepad.exe
Global $control = "[CLASS:Edit; INSTANCE:1]"
HotKeySet("{F3}","hkF3")
While 1
Sleep(50)
If WinActive($titel) And _IsPressed(71) Then ControlSend($titel,"",$control,"x") ; F2 Key sollte ein "x" senden
WEnd
Func hkF3()
If WinActive($titel) Then ControlSend($titel,"",$control,"y") ; F3 Key sollte ein "y" senden
EndFunc