Вы просто пытаетесь переназначить сочетания клавиш?
SendMode Input ; use SendInput by default for Send
;#IfWinActive, ahk_exe someProg.exe ; ← #IfWinActive would go here
; Remap Win+ArrowKey to Ctrl+ArrowKey
*#Left::Send ^{Left}
*#Right::Send ^{Right}
*#Up::Send ^{Up}
*#Down::Send ^{Down}
Если вы хотите использовать ключ Windows для CMD
то ...
; Remap Alt+ArrowKey to Win+ArrowKey
*!Left::Send #{Left}
*!Right::Send #{Right}
*!Up::Send #{Up}
*!Down::Send #{Down}
Звездный модификатор *
позволяет присутствовать / активировать другие клавиши-модификаторы и по-прежнему срабатывать. Вы можете или не можете этого хотеть. И вам может потребоваться отправить {Blind}
(то есть добавить это к операторам отправки), если вы не хотите, чтобы дополнительные модификаторы были выпущены. Смотрите документацию для отправки.
Если вы хотите, чтобы эти перестановки работали только в определенных программах, используйте оператор #IfWinActive
предшествующий операторам переназначения в сценарии. С другой стороны, #If WinActive("ahk_exe ProgA.exe") || WinActive("ahk_exe ProgB.exe")
если вы хотите, чтобы они менялись местами для нескольких (но не всех) программ.
Сверху должно быть очевидно, что представляют собой ключевые модификаторы (Ctrl = ^
, Alt = !
Win = #
)... полный список доступен здесь: Горячие клавиши.
Кроме того, если вам в конечном итоге потребуется сделать больше, чем простые однострочные для переназначения клавиш, просто поместите операторы в строку после определения горячей клавиши и используйте оператор Return
чтобы сделать несколько вещей для одного триггера горячей клавиши, т.е.
; Scrub the clipboard of formatting and paste...
; This takes two commands, list on the line after hotkey definition
#IfWinActive ; Reset conditional so this will trigger in any program...
+^v::
Clipboard := Clipboard ; Reassign only text back to clipboard vs. ClipboardAll
Send ^v
Return