在 Windows 10 上使用 Logitech 鼠标接收高精度 WM_MOUSEWHEEL 事件

问题描述 投票:0回答:1

为了改进应用程序中的滚动,我最近添加了对高分辨率滚轮事件的支持。根据文档,这非常简单:WM_MOUSEWHEEL 的处理程序应该支持任意值,而不是仅 +/- 120。

Windows 上的 Firefox 和 Chrome 就是正确执行此操作的应用程序示例。

我使用的是带有高分辨率滚轮的罗技鼠标(MX Master 3),但我注意到我收到的所有事件都只是 +/- 120。但是,我可以找到两个非常奇怪的解决方法:

  • 将我的程序重命名为 Firefox.exe
  • 聚焦 Firefox(我的应用程序在后台),将鼠标移到那里并滚动到那里

第二个技巧也适用于其他事物。例如,它使 Windows 10 设置应用程序滚动顺畅。以下是操作差异的演示(前 4 秒聚焦,然后 Firefox 聚焦则不聚焦):https://www.youtube.com/watch?v=gb1FUtyLxUg&feature=youtu.be

我认为驱动程序这样做是为了与无法处理 120 以外的任何内容的旧应用程序兼容。但是有没有办法让我的应用程序选择加入以获得更好的事件?或者罗技驱动程序只是硬编码了一堆浏览器而其他人都运气不佳?

scroll windows-10 smooth-scrolling logitech
1个回答
0
投票

在 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

使用说明:

  • 将存档中的文件 version.dll 放置在 logioptionsplus_agent.exe 附近(默认情况下为 C:\Program Files\LogiOptionsPlus)
  • 在%AppData%\logioptionsplus(例如,C:\Users\User\AppData\Roaming\logioptionsplus\wheel_apps_list.txt)中创建文本文件wheel_apps_list.txt,其中包含支持高分辨率滚轮滚动的可执行文件列表(提供的示例)在档案中)
  • 重新加载后台进程 Logi Options+ Agent(您可以通过任务管理器杀死进程 logioptionsplus_* 来完成此操作,这样它们将自动重新启动)

安装新版本的Logi Options+(手动或自动)时,您需要再次将version.dll放入Logi Options+路径(安装程序会删除那里的所有内容)。

© www.soinside.com 2019 - 2024. All rights reserved.