我想要做的事(文章的简短部分)
我想在驱动程序级别切换鼠标左键和右键。
也就是说,我想修改或覆盖鼠标驱动程序,以便在 Windows 操作系统上切换鼠标左键和右键。(该解决方案最好适用于 Windows 7 及更高版本。)
我到底为什么要这么做(文章的长篇部分)
术语
为了简洁明了,我将使用以下内容粗体条款:
- 左边- 鼠标左键
- 正确的- 鼠标右键
- 点击- 通常按下时发送的信号左边,用于选择文件、单击按钮、拖放窗口
- 菜单- 通常按下时发送的信号正确的,例如用于打开上下文菜单
- 赢-换- Windows 控制面板 > 鼠标设置,使左边火菜单和正确的火点击。
问题
我是左撇子。我用左手使用鼠标。作为一个正常人,我触发点击用我的食指和菜单用我的中指 - 这意味着我用正确的到点击和左边到菜单。 通常情况下,赢-换就足够了 - 而且它适用于浏览器,办公软件,媒体编辑器,编程 IDE 等。
不幸的是,我也是一名游戏玩家。由于DirectX 处理鼠标按钮的特殊之处,相当多的游戏——不管它们是高预算发行的还是单一开发商的免费软件——都被忽略了赢-换并且(据我所知)从驱动程序级别读取按钮信号。
这通常意味着(如果你不能在游戏中重新绑定鼠标按钮)整个游戏基本上无法玩,或者(如果你能重新绑定)浏览游戏菜单需要高度集中注意力,并且存在意外无法执行简单任务的持续风险。
无论哪种方式,这都是相当不愉快、令人恼火的,并且让我很难享受我的爱好,因为这意味着我必须放弃我感兴趣的游戏。
我尝试过的解决方案
我买了 Razer Abyssus。它的两个版本的驱动程序都存在严重错误,为了启用左手按钮布局,我需要设置一个 Abyssus-旧驱动程序-X-鼠标按钮控制链。由于 Razer 被认为是游戏相关外设的领导者之一,他们无法制作具有基本可用性的驱动程序,这让我对将我的信任和金钱放在任何游戏鼠标上持谨慎态度。
在过去 5 年里,我尝试了大约 8 个不同的应用程序(包括付费软件的演示版),这些应用程序应该可以交换按钮。不幸的是,它们都不起作用——它们要么是 UI 覆盖层,要么是赢-换或者交换的层次比赢-换(D-小鼠)。
X-Mouse Button Control 最接近,但不幸的是它实际上并没有拦截原始信号,所以你最终会同时发送点击和菜单当单击任一鼠标按钮时。
我也尝试过 AutoHotKey,但简单的宏如下
left::right
right::left
不起作用,社区也没有什么帮助。(AHK 论坛曾经充斥着 RTFM 的回复。)
可能的陷阱
据报道,某品牌的笔记本电脑在控制面板中自定义了鼠标菜单,可以传播赢-换达到驾驶员级别。
提前感谢您的回答。如果您需要澄清/更多信息,我应该能够在 24 小时内提供。
答案1
如果您想永久切换鼠标按钮并且软件不允许您这样做,那么您可以尝试在硬件上进行。
当然,这一切都取决于鼠标硬件本身,但您应该能够拆焊并重新焊接连接鼠标按钮间歇开关的电线。
答案2
显然,如果您希望鼠标在 Windows 中正常工作,您可以去找负责文件系统驱动程序的人员。
穆尔作为 Ext2Fsd 项目的一部分,它实际上使得左手鼠标在我所有的基准测试中都能完美地运行。
当然,它是在实际窗口中运行的,而且似乎没有任何方法可以让它在启动时自动运行(或自动将每个鼠标标记为左手鼠标),从而更改影响所有 Windows 用户(而不是单个用户)的系统范围的驱动程序,但它确实有效。
如果我在使用过程中发现任何问题,我会更新此答案。
答案3
解决该问题的一个非常不可靠的方法是使用以下 AutoHotKey 脚本(适用于 AHK v1.1.24.02 及更早版本):
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
LButton::RButton
Rbutton::LButton
它修复了以下问题一些遊戲。
不幸的是,它不是一个万能的解决方案,而且使用起来很烦人,因为它要求你在每次启动有问题的游戏时禁用 WinSwap(并在退出时再次启用它),因为它在活动时实际上会破坏 Windows 任务栏(这也使得关闭它有点棘手)。
我发布这篇文章只是因为在盲人的国度里,独眼龙就是国王——即使他患有严重的夜盲症。