如何重新映射鼠标按钮以与自动热键中的热键前缀基本相同

Posted

技术标签:

【中文标题】如何重新映射鼠标按钮以与自动热键中的热键前缀基本相同【英文标题】:How do I remap a mouse button to do basically the same thing as a prefix for a hotkey in autohotkey 【发布时间】:2020-08-17 18:14:09 【问题描述】:

我对 AutoHotKey 比较陌生,所以请容忍我的任何愚蠢行为,但我正在尝试使用我的两个鼠标按钮中的至少一个(我有一个 Logitech M570 轨迹球并且正在运行 Windows 10)来执行基本操作与前缀键相同的功能。我基本上只是想要另一个可以像 ctrl、alt、windows、fn 等一样工作的键。我一直在尝试逐个热键来执行此操作,而不是仅仅重新映射键本身(我不想要丢失任何基于其他前缀的现有快捷方式),但由于某种原因,它永远不会起作用。我不知道它是否在我的轨迹球设置中,或者它是否在 AutoHotKey 中。这是我一直在尝试做的一个例子

XButton1 & a::Left
XButton1 & d::Right
XButton1 & w::Up
XButton1 & s::Down

当我按住XButton1 时,应该将a w s d 变成箭头键。 如果有人对如何解决此问题有任何建议,我将不胜感激。

更新:我的代码没有任何问题。问题是我的轨迹球。不要尝试将 Logitech M570 与 AutoHotKey 一起使用,这会很麻烦。

但是,正如接受的答案中所述,此脚本将使重映射中使用的密钥变得无用,因此不要使用 LButton 而不是 XButton1 来调整它。请参阅上述答案,了解实现相同目标的更好方法。

【问题讨论】:

使用Send 命令XButton1 & a::Send Left。另请参阅Custom Combinations。 您的代码非常适合我。检查您的鼠标是否确实生成了XButton1KeyHistory。如果它确实检查了只有这 4 行的脚本,并且它是唯一运行的脚本。 我尝试了这两个建议,但由于某种原因,它们似乎都不起作用。两个鼠标按钮都出现在KeyHistory 中,但在Custom Combinations 中似乎都表现不佳。当鼠标按钮是触发热键时使用的唯一键(又名键重新映射)时,我已经让它们运行得很好。感谢您的帮助。 更新:只要我不使用罗技 M570 轨迹球,这些建议就可以正常工作。如果你想使用 AutoHotKey,我不建议购买它 【参考方案1】:

我不确切知道什么不适合您,但该代码将捕获每次按下 XButton1,这可能是您不想要的。这个版本应该可以正常工作。

#If GetKeyState("LButton")
a::Left
d::Right
w::Up
s::Down
#If

【讨论】:

谢谢,伙计!这工作得很好,但只有一次我使用了不同的鼠标。我不认为罗技 M570 与 AutoHotKey 配合得很好。由于某种原因,即使我按住它,它也会将XButton1注册为立即释放,即使它注册了我按住LButton,甚至发送了热键,它也由于某种原因没有执行该功能。我可能会看看我的原始代码是否适用于我的其他鼠标。 . .

以上是关于如何重新映射鼠标按钮以与自动热键中的热键前缀基本相同的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动热键编辑注册表值?

Xcode 中是不是有用于“后退按钮”的热键可用或可配置?

在 MacOS 中使用鼠标和热键移动窗口 [关闭]

电脑快捷键怎么设置

热键F4失效了,没反应了怎么办?

如何使用winforms创建自定义热键