moin.
In meinem Script möchte ich einige Hotkeys per Schleife in einer Funktion setzen ( Func _SetHotToggle() ), damit ich mich bei Änderungen daran nur um eine Stelle im Code kümmern muss.
Dies klappt aber nur zum Teil: Die Zeile HotKeySet("{TAB}", "_KeyToggle") scheint nur zu funktionieren, wenn ich sie von Hand eingebe.
Diese Zeile habe ich in meinem Beispiel deaktiviert, um das ungewünschte Verhalten zu demonstrieren. Die Zahlentasten aktivieren die Func _KeyToggle() wie gewollt, jedoch müsste ich für die TAB-Taste eine extra Zeile schreiben.
-Das bringt mich zwar nicht um ... aber es macht mich einfach WAHNSINNIG !! Schließlich klappt es mit dem Zurücksetzen der Hotkeys in der Func _SetHotDefault() ja ohne Probleme ...
Es würde mich sehr freuen, wenn mir das jemand erklären könnte, oder vielleicht sogar eine Lösung bzw. Verbesserung dazu anbieten würde Vielen Dank schonmal !!
Dies ist nur eine gekürzte Variante meines Scripts:
#include <Misc.au3>
#include <Array.au3>
Global $hDLL = DllOpen("user32.dll")
#Region ### HotKeys #
HotKeySet("{F11}", "Done")
Global $gS_ToggleScript = "_KeyToggle"
Global $gA_ToggleKeys[0]
_ArrayAdd($gA_ToggleKeys, "1" )
_ArrayAdd($gA_ToggleKeys, "2" )
_ArrayAdd($gA_ToggleKeys, "3" )
_ArrayAdd($gA_ToggleKeys, "4" )
_ArrayAdd($gA_ToggleKeys, "{Alt}" )
_ArrayAdd($gA_ToggleKeys, "{TAB}" )
_SetHotToggle()
#EndRegion # HotKeys
#Region ### Func #
Func Done()
DllClose($hDLL)
Exit
EndFunc
Func _SetHotToggle()
For $i in $gA_ToggleKeys
HotKeySet($gA_ToggleKeys[$i], $gS_ToggleScript)
Next
;- HotKeySet("{TAB}", "_KeyToggle")
EndFunc
Func _SetHotDefault()
For $i in $gA_ToggleKeys
HotKeySet($gA_ToggleKeys[$i])
Next
EndFunc
Func _KeyToggle()
_SetHotDefault()
Send("Test3241")
_SetHotToggle()
EndFunc
#EndRegion # Func
#Region ### Schleife #
While 1
Sleep(10)
WEnd
#EndRegion # Schleife
Alles anzeigen