Kann ich Alt + Tab aktivieren, wenn eine Taste gedrückt wird?

Kann ich Alt + Tab aktivieren, wenn eine Taste gedrückt wird?

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 lieberAltTabmehr als jede Alternative. Das Problem ist:

AltTabund ShiftAltTabsind zwei der Sonderbefehle, die nur erkannt werden, wenn sie in derselben Zeile wie ein Hotkey verwendet werden.

Sie werden innerhalb der IfAnweisung nicht erkannt.

Glücklicherweise gibt es auch#If:

#Ifist 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 AltTabim 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)

verwandte Informationen