为了改进应用程序中的滚动,我最近添加了对高分辨率滚轮事件的支持。根据文档,这非常简单:WM_MOUSEWHEEL 的处理程序应该支持任意值,而不是仅 +/- 120。
Windows 上的 Firefox 和 Chrome 就是正确执行此操作的应用程序示例。
我使用的是带有高分辨率滚轮的罗技鼠标(MX Master 3),但我注意到我收到的所有事件都只是 +/- 120。但是,我可以找到两个非常奇怪的解决方法:
第二个技巧也适用于其他事物。例如,它使 Windows 10 设置应用程序滚动顺畅。以下是操作差异的演示(前 4 秒聚焦,然后 Firefox 聚焦则不聚焦):https://www.youtube.com/watch?v=gb1FUtyLxUg&feature=youtu.be
我认为驱动程序这样做是为了与无法处理 120 以外的任何内容的旧应用程序兼容。但是有没有办法让我的应用程序选择加入以获得更好的事件?或者罗技驱动程序只是硬编码了一堆浏览器而其他人都运气不佳?
在 Logitech 名为 Logi Options+ 的最新软件中,有一个包含 4 个应用程序的内置列表,可在其中实现高分辨率滚轮滚动。 该列表包括 msedge.exe、iexplore.exe、chrome.exe 和 firefox.exe。 此逻辑存在于 logioptionsplus_agent.exe 中。
在他们之前的软件 SetPoint 中,您可以向其隐藏窗口之一发送特定的窗口消息,以在前台应用程序中实现平滑滚动,但在 Options+ 中,他们改变了这一点。
我制作了一个小型 DLL,可以在内存中修补 logioptionsplus_agent.exe,以扩展支持高分辨率滚动的应用程序列表。它适用于当前和以前版本的 Logi Options+,并且当新版本更改调用代码时可能需要更新代码。
这是它的链接: https://www.upload.ee/files/15420330/logioptionsplus_smoothwheel.zip.html
使用说明:
安装新版本的Logi Options+(手动或自动)时,您需要再次将version.dll放入Logi Options+路径(安装程序会删除那里的所有内容)。