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 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 disparam. Você pode ou não querer isso. E você pode precisar enviar {Blind}
(isto é, adicione isso às instruções de envio) se você não quiser que os modificadores adicionais sejam liberados. Veja a documentação para Mandar .
Se você quiser que esses swaps funcionem somente em determinados programas, use um #IfWinActive
declaração que precede as instruções de reconsignação no script. Alternadamente, #If WinActive("ahk_exe ProgA.exe") || WinActive("ahk_exe ProgB.exe")
se você quiser que eles sejam trocados por múltiplos (mas não todos) programas.
Deve ser evidente a partir de cima quais são os principais modificadores (Ctrl = ^
, Alt = !
Vitória #
)... A lista completa está disponível aqui: Teclas de atalho .
Além disso, caso você precise fazer mais do que simples linhas de uma linha para reatribuições de chaves, basta colocar as instruções na linha após a definição da tecla de atalho e usar uma Return
declaração para fazer várias coisas para um único gatilho de atalho, ou seja ...
; 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