Você está apenas tentando remapear teclas de atalho?
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}
Se você quiser usar a tecla do Windows para CMD
, então ...
; Remap Alt+ArrowKey to Win+ArrowKey
*!Left::Send #{Left}
*!Right::Send #{Right}
*!Up::Send #{Up}
*!Down::Send #{Down}
O modificador de estrela *
permite que outras teclas modificadoras estejam presentes / ativas e ainda sejam acionadas. Você pode ou não querer. E você pode precisar enviar {Blind}
(isto é, adicionar isso às instruções de envio) se não quiser que os modificadores adicionais sejam liberados. Veja a documentação para Enviar .
Se você quiser que esses swaps funcionem somente em determinados programas, use uma instrução #IfWinActive
antes das instruções de recriação no script. Como alternativa, #If WinActive("ahk_exe ProgA.exe") || WinActive("ahk_exe ProgB.exe")
se você quiser que eles sejam trocados por vários (mas não todos) programas.
Deve ficar evidente acima quais são os modificadores de chave (Ctrl = ^
, Alt = !
, Win = #
) ... a lista completa está disponível aqui: Teclas de atalho .
Além disso, se você eventualmente precisar fazer mais do que simples linhas para reatribuições de chave, basta colocar as instruções na linha após a definição de tecla de atalho e usar uma instrução Return
para fazer várias ações para um único acionador de tecla de atalho. ..
; 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