
Ich muss die Möglichkeit haben, Alt + Tab ein- und auszuschalten. Gibt es eine Möglichkeit, das über AHK zu tun? Ich weiß, wie man es deaktiviert, aber umgekehrt ist das nicht möglich, glaube ich.
Ich deaktiviere es, Benutzer!Tab::Return
Antwort1
Es gibtIf
. Im Allgemeinen können Sie es verwenden, um Code bedingt auszuführen. Eine einfache Idee besteht darin , abhängig von einer bestimmten Bedingung Alt+ Taboder nichts zu senden.
Aber seit dem Senden Alt+Tab ist lästig, Sie wollen lieberAltTab
mehr als jede Alternative. Das Problem ist:
AltTab
undShiftAltTab
sind zwei der Sonderbefehle, die nur erkannt werden, wenn sie in derselben Zeile wie ein Hotkey verwendet werden.
Sie werden innerhalb der If
Anweisung nicht erkannt.
Glücklicherweise gibt es auch#If
:
#If
ist positionell: es wirkt sich auf alle Hotkeys und Hotstrings aus, die sich physisch im Skript darunter befinden. […] Um die Kontextsensitivität auszuschalten, geben Sie#If
[…] an, lassen Sie jedoch alle Parameter weg.
Auf diese Weise können wir Ihre bekannte Methode zum Deaktivieren des Schlüssels bedingt anwenden und müssen AltTab
im Skript nicht einmal Folgendes ausführen:
#If (GetKeyState("ScrollLock", "T"))
!Tab:: Return
+!Tab:: Return ; to disable Shift+Alt+Tab as well
#If
Jetzt ScrollLockist es wie „AltTabLock“. Es sperrt Alt+ Tab.
Passen Sie die Bedingung Ihren Bedürfnissen an. Eine Variable kann hilfreich sein. So wird beispielsweise F10die Umschalttaste aktiviert:
#If (disable==1)
!Tab:: Return
+!Tab:: Return
#If
F10:: disable:=NOT(disable)