
Мне нужно иметь возможность включать и выключать 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)