Могу ли я включить Alt + Tab при нажатии клавиши?

Могу ли я включить Alt + Tab при нажатии клавиши?

Мне нужно иметь возможность включать и выключать Alt + Tab. Есть ли способ сделать это через AHK? Я знаю, как отключить, но обратное действие, я думаю, невозможно.

Я отключаю его, пользователь!Tab::Return

решение1

ЕстьIf. В общем, вы можете использовать его для условного запуска некоторого кода. Простая идея — отправить Alt+ Tabили ничего, в зависимости от некоторого условия.

Но с момента отправки Alt+Tab это хлопотно, вы хотите скорееAltTabбольше, чем любая альтернатива. Проблема в том:

AltTabи ShiftAltTab— две специальные команды, которые распознаются только при использовании в той же строке, что и горячая клавиша.

В заявлении они не указаны 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)

Связанный контент