Специальный режим с ALT, как с капслоком

Я хочу включить «режим стрелки» после нажатия клавиши «Alt» (например, я перехожу в режим заглавных букв после нажатия кнопки «Caps Lock»).

Я хочу нажать alt один раз, а затем все время использовать буквы в качестве стрелок (например, удерживается alt), а затем снова нажать alt, чтобы выйти из «режима стрелки» и использовать обычные буквы. Я ожидаю, что смогу нажать затем alt + D (одновременно) и получить не стрелку, а ярлык программы.

Прямо сейчас я использую левые буквы в качестве стрелок:

; Arrows on s,d,f,e
!e::SendInput,{UP}
!s::SendInput,{LEFT}
!f::SendInput,{RIGHT}
!d::SendInput,{DOWN} 

но я не могу использовать alt + d (это ярлык моей программы)


person vantropf    schedule 22.09.2014    source источник


Ответы (2)


Вы переопределили то, что делает alt-d, так что больше ничего делать не будет. Но код, который вы написали, не делает того, что вы описываете. Я думаю, что вам нужен переключатель:

e::SendInput,{UP}
s::SendInput,{LEFT}
f::SendInput,{RIGHT}
d::SendInput,{DOWN}
Alt::
Hotkey, e, Toggle
Hotkey, s, Toggle
Hotkey, f, Toggle
Hotkey, d, Toggle
Return

http://ahkscript.org/docs/commands/Hotkey.htm

person Dennis_E    schedule 22.09.2014
comment
@Forivin Почему бы и нет? Использование Alt в качестве горячей клавиши может быть проблематичным. Я бы не рекомендовал это в любом случае. Использование другой горячей клавиши определенно сработает. - person Dennis_E; 23.09.2014
comment
Если вы пробовали это, и это сработало, nvm, но вы не можете переключать ::-горячие клавиши с помощью команды горячих клавиш. - person Forivin; 23.09.2014
comment
Да, вы также можете переключать ::-горячие клавиши с помощью команды горячих клавиш. Я использовал его в течение многих лет. ahkscript.org/docs/commands/Hotkey.htm Проблема не в горячей клавише, а в использовании Alt в качестве горячей клавиши. - person Dennis_E; 23.09.2014

Вот гораздо более чистое решение. (Обязательно используйте AHK_L)

LAlt::(ArrowMode:=!ArrowMode)

#If ArrowMode
    e::Up
    s::Left
    d::Down
    f::Right
#If
person Elliot DeNolf    schedule 26.09.2014