キーが押されたときにAlt + Tabを有効にすることはできますか

キーが押されたときにAlt + Tabを有効にすることはできますか

Alt + Tab のオン/オフを切り替える機能が必要です。AHK 経由でそれを実行する方法はありますか。無効にする方法は知っていますが、その逆は不可能だと思います。

私はそれを無効にします!Tab::Return

答え1

があるIf一般的に、これを条件付きでコードを実行するために使用できます。簡単なアイデアとしては、何らかの条件に応じてAlt+を送信するか、何も送信しないというものがあります。Tab

Altしかし、 +を送信してからTab 面倒だ、あなたはむしろAltTab他の選択肢よりも優れています。問題は次の通りです。

AltTabおよび は、ShiftAltTabホットキーと同じ行で使用した場合にのみ認識される 2 つの特殊コマンドです。

それらはステートメント内では認識されませんIf

幸いなことに、#If:

#If位置依存です。スクリプト内で物理的にその下にあるすべてのホットキーとホットストリングに影響します。 […] コンテキスト依存をオフにするには、#If[…] を指定しますが、すべてのパラメータを省略します。

AltTabこの方法では、キーを無効にする既知の方法を条件付きで適用することができ、スクリプトでは必要ありません。

#If (GetKeyState("ScrollLock", "T"))
   !Tab:: Return
   +!Tab:: Return   ; to disable Shift+Alt+Tab as well
#If

今はScrollLock「AltTabLock」のようです。Alt+ をロックしますTab

必要に応じて条件を調整します。変数が役に立つ場合があります。たとえば、F10トグル キーは次のようになります。

#If (disable==1)
   !Tab:: Return
   +!Tab:: Return
#If
F10:: disable:=NOT(disable)

関連情報