Hallo,
ich hab schon Google, die offizielle Bugseite und die Forensuche bemüht, aber nichts passendes gefunden.
Ich hab ein kleines Skript geschrieben, dass je nach Einstellung einen Text senden soll. Dazu wird ein Hotkey bestimmt (im Moment nur A) der dann zusammen mit Shift und Strg den Hotkey darstellt. Allerdings blockiert die Shifttaste gelegentlich und spielt Caps-Lock, teilweise ist auch Strg noch aktiv. Ich finde den Grund aber nicht. Auch eine Umstellung von kombinierter _isPressed()-Abfrage auf Hotkeyset brachte keine Änderung. Irgendwas verschluckt anscheinend den Button-Up. Nur wenn man den definierten Hotkey als erstes loslässt, klappt es (bis jetzt immer) ohne Zicken.
Spoiler anzeigen
#include <GUIConstants.au3>
#Include <Misc.au3>
$ES_READONLY = 0x0800
$wname = "DotA Gamesettings"
$hkeyval = "NONE"
$hkey = ""
opt("SendKeyDelay", -1)
opt("SendKeyDownDelay", 0)
Opt("SendAttachMode", 1)
GUICreate($wname, 200, 100)
[/autoit] [autoit][/autoit] [autoit]$checkdi = GUICtrlCreateCheckbox ("-di", -1, 0)
$checkwaterred = GUICtrlCreateCheckbox ("-water red", -1, 20)
$checkhhn = GUICtrlCreateCheckbox ("-hhn", -1, 40)
$hklabel = GUICtrlCreateLabel ( "Hotkey: STRG + SHIFT + ", -1, 63 )
$hotkey = GUICtrlCreateInput ( $hkeyval, 125, 63, 55,15, $ES_READONLY)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
if (ControlGetFocus($wname) = "Edit1") Then
if _IsPressed("41") Then
$hkey = "41"
$hkeyval = "A"
GUICtrlSetData ($hotkey, $hkeyval)
EndIf
EndIf
if ($hkey <> "") Then
if (_IsPressed("10") And _IsPressed("11") And _IsPressed($hkey)) Then
While (_IsPressed("10") And _IsPressed("11") And _IsPressed($hkey))
Sleep(100)
WEnd
if (GUICtrlRead($checkdi) < 4) Then
Send("{ENTER}-di{ENTER}")
EndIf
if (GUICtrlRead($checkwaterred) < 4) Then
Send("{ENTER}-water red{ENTER}")
EndIf
if (GUICtrlRead($checkhhn) < 4) Then
Send("{ENTER}-hhn{ENTER}")
EndIf
Send("^")
Send("+")
EndIf
EndIf
WEnd
Dass das Skript erst nach loslassen der Tastenkombination ausgeführt wird ist übrigens kein Muss, war nur Teil eines Bugfix-Versuchs, ebenso wie Opt("SendAttachMode", 1) .
Ich hoffe jemand kann mir dazu was sagen.