AutoHotkey:当特定 ahk_exe/进程处于活动状态时交换修饰键,无论 ahk_class 或窗口标题如何

AutoHotkey:当特定 ahk_exe/进程处于活动状态时交换修饰键,无论 ahk_class 或窗口标题如何

我尝试在使用 REAPER 时交换 Windows 和 ALT 键,以便我在 PC 上输入的快捷键与我在 Mac 上使用时输入的快捷键相同(就像通过肌肉记忆在相同的键盘位置上一样)。

换句话说,在 Windows/PC 键盘上,alt 键位于 Mac 键盘上 command 键的位置,而 windows 键位于 option 键的位置。由于这些键的对应/跨平台映射实际上是 alt=option 和 command=windows,我只需将这些修饰键重新映射到另一个,这样,当单独使用或与任何其他键或修饰键组合使用时,仅当我使用 REAPER 时,按下 alt 键将始终发送 windows 按键,而按下 windows 键将始终发送 alt。

我尝试了以下操作,但似乎不起作用:

#IfWinActive ahk_class reaper
!::#
#::!

我也尝试过这个:

#IfWinActive ahk_exe reaper.exe
!::#
#::!

但这也不起作用。

主要问题是 REAPER 中可以打开/激活任意数量的不同窗口,并且大多数窗口都有不同的标题和类别。所以我真的需要这个修饰键 keyswap 依赖于主动进程而不是活动窗口当 REAPER 为活动进程时,Window Spy 中显示的 ahk_exe 是 reaper.exe。

请有人帮帮我。我快要疯了,因为在工作和家之间往返,总是忘记捷径,或者走错路,做我不想做的事情。

谢谢!

答案1

  • “!”和“#”是修饰符号用于 Alt 键和 Windows 键。

  • 修饰符仅用于组合键以便修改其他键。

  • 与 Control/Alt/Shift 不同,没有通用/中性的“Win”键因为操作系统不支持它。(见修饰键

在这种情况下,您必须使用这些键的全名,否则 AHK 会将文字键/字符 ! 重新映射到 # 并将 # 重新映射到 !:

#IfWinActive ahk_exe reaper.exe

    Alt::LWin
    LWin::Alt
    RWin::Alt

#IfWinActive

相关内容