【问题标题】:Remapping Alt key to Ctrl key in AutoHotKey causes both keys to be pressed在 AutoHotKey 中将 Alt 键重新映射到 Ctrl 键会导致两个键都被按下
【发布时间】:2020-06-08 22:53:01
【问题描述】:

所以,正如标题所说,每当我将我的 LAlt 键重新映射到 LCtrl(或 LCtrl 到 LAlt)时,当使用任一键时,它们都会被按下,这会导致各种问题。

我需要交换这些键的主要原因是用于 Windows 7 计算机上的 Mac 键盘。不过,老实说,这只是我问题的开始。 我实际上希望 LAlt 键是 LCtrl 键,LWin 键是 LAlt 键,LCtrl 键是 LWin 键,因此它可以适当地模拟 Mac 键盘供个人在 Pro Tools 中使用10. 当我尝试这种 3 向交换时,LCtrl 和 LWin 功能正常(分别作为 LWin 和 LAlt),但是,LAlt 键继续同时按下 LCtrl 和 LAlt。

我的代码如下所示:

#IfWinActive
LAlt::LCtrl
LWin::LAlt
LCtrl::LWin
Return

我是 AHK 的新手,但这不应该过于复杂,对吧?它又短又甜,我什至不担心 Alt+Tab 的考验;我只需要找出问题所在,就可以正确交换这三个按钮。如果有人知道为什么会发生这种情况,我将不胜感激。感谢您的时间和精力。

【问题讨论】:

  • 您有一个重复的热键,该代码无法编译。
  • 感谢您的快速回复,并指出我的错误。实际上,我在这里输入代码时打错了字(我应该只是复制粘贴,但无论如何代码都足够小)。我编辑了 OP 以反映我实际拥有的代码。
  • 这可能是 Autohotkey 的限制。
  • 我认为您可能必须使用 !^# 而不是 LAltLCtrlLWin,为要重新映射的每个组合键创建热键。
  • 所以,使用代码:#IfWinActive !::^ #::! ^::# 当我按 Alt -- PLUS -- windows 键和 Ctrl 保持不变时,我仍然遇到 Ctrl+Alt 问题

标签: macos windows-7 keyboard macros autohotkey


【解决方案1】:

我认为您的热键可能会相互触发。

当你点击 LALT 时,它会发送 LCTRL,触发 LALT... 当您有一个热键的输出与另一个热键的输入相匹配时,在您的热键前面加上 $ 以阻止它们相互触发:

$LAlt::LCtrl
$LWin::LAlt
$LCtrl::LWin

另外,我认为你的 #IfWinActive 没有做任何事情,因为它没有 WinTitle 参数,加上最后的 return 不是你结束 #IfWinActive 块的方式,你开始它#IfWinActive <WinTitle> 并以 #IfWinActive 结束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-09
    • 2015-01-23
    • 1970-01-01
    • 2018-12-15
    • 2020-11-13
    • 2021-09-04
    • 2015-11-15
    • 2014-03-17
    相关资源
    最近更新 更多