在 VMware Guest 中使用 Synaptics 触摸板滚动

在 VMware Guest 中使用 Synaptics 触摸板滚动

我想在 VMware 客户机中使用 Synaptics“双指滚动”。

它在主机上按预期工作,但 VMware 似乎不支持它。鼠标光标发生变化以指示滚动处于活动状态,但 VMware 客户机不会对此做出响应。

  • VMware Workstation 7.1
  • 主机和客户操作系统:Windows 7(64位)
  • Synaptics 驱动程序 15.0.9.0
  • 设备显示为“Synaptics LuxPad V7.4”

是否有可能以某种方式使其工作?(例如修改 .vmx,更改 Synaptics 选项或使用模拟“鼠标滚轮滚动”的驱动程序)

更新:我已经尝试了 Synaptics 驱动程序中的几个选项,但唯一的变化是尝试滚动时显示不同的鼠标光标。

答案1

好的,我做了研究并成功了。

经过一番思考,我得出结论,我不知道它是如何工作的:-) 它就是如此!:-)

之前«有用:)有趣»:

简而言之,Synaptics 触摸板发送SendMessage()或者PostMessage(),没有费心去指出这一点)对窗口消息( WM_MOUSEWHEEL) 到 VMware 窗口,但它实际上应该使用SendInput(),直接模拟物理鼠标。似乎有一个选项可以使用SynTPEnh.exe文件 来控制驱动程序(或更准确地说,用户模式程序 ) 的行为tp4table.dat。不幸的是,不知何故,我的驱动程序中没有启用此选项(尽管可执行文件中有这样的字符串)。

因此,我进行了以下操作 - 只是将 注入.dll到 VMware 的窗口进程中(我希望它是安全的,也希望它不是执行 VM 的同一进程),子类化窗口过程(意味着拦截窗口消息)并使用 翻译“错误”的消息SendInput()

,有人指出,即使采用我的解决方案,也值得应用以下修复:http://blog.alexou.net/2010/07/scrolling-in-gtk-apps-with-synaptics-driver/

因此,源代码和可执行文件(它们仅支持 Workstation,有关 Player 的进一步信息,请参阅“更新”) - 如果您没有找到任何内容,请在评论中提问 -https://www.dropbox.com/s/gucmyo35heha6g2/vmware_scroll.zip?dl=0

主要备注:在虚拟机运行时运行相应的可执行文件。

另一重要评论:滚动打开后不要移动hook.dll。如果您从其他位置开始,则不会卸载(即禁用滚动)。*.exevmware_scroll_stop.exe.dll

更新: 有一个加强版 (它由 Anthony Prieur 增强,非常感谢他!),它也支持 VMware Player。从中衍生出一个程序叫做 VMWareTrackPadScroller 还提供简单的用户界面。

笔记:不幸的是,不会有支持水平滚动的版本。问题是,有一个解决方案,但我拒绝了它,因为它太肮脏了。要完成这项任务,需要挂接(在 SynTPEnh.exe 中)GetClassNameW() API 来修改 VMware 窗口类的名称(它们是“VMware.GuestWindow”和“MKSEmbedded”)或 wcsicmp(),以便在其中一个参数是上述字符串之一时始终返回“不相等”。我认为从性能的角度来看,这是一个肮脏的解决方案,至少(这实际上是一个薄弱的论点,因为性能损失很小)。无论如何,我认为当前的解决方案是可以接受的,因为您的设备并不总是具有水平滚动功能,习惯于没有这种奢侈的生活比在贫困中受苦要好。顺便说一句,在 Chrome/Chromium 中,您必须Shift+Vertical Scroll进行水平滚动。

答案2

许多人抱怨过这个问题,并且已经向 Synaptics 提交了功能请求。

我发现了一个成功报告这里。虽然是针对Ubuntu的,但是好像显示有办法解决这个问题。

我建议您针对主人和客人尝试下面文章中概述的解决方案:
修复 Dell Synaptics 触摸板导致的 Firefox 滚动问题

文章提到了两个修复方法:

  1. 从鼠标属性中删除循环滚动选项
  2. 用以下驱动程序替换戴尔触摸板驱动程序Synaptics 驱动程序

正如文章中对第二个问题所说:

您可以删除戴尔触摸板驱动程序并安装通用 Synaptics 驱动程序,这对很多人来说效果更好 — 但它们缺少一些额外的戴尔功能。只要您的触摸板能达到您的预期,那就值得了。

我建议在更改驱动程序之前创建一个系统还原点,以防万一。
您也可以随时从设备管理器回滚驱动程序。

编辑1

有些人报告说使用 ALPS 驱动程序而不是 Synaptics 时会成功。
正如所说适用于 Windows 7 的 Alps 触摸板驱动程序

有些戴尔笔记本电脑没有 Synaptics 生产的触摸板。它们有 Alps 触摸板。如果您不确定您有哪种触摸板,请参阅此邮政关于识别正确的模型。

当我帮助我的用户将他的 Inspiron 1420 升级到 Windows 7 时,我使用了 Vista 的驱动程序。以下是 关联下载。此驱动程序仅适用于 32 位。如果这对您不起作用,您也可以尝试适用于 Windows 7 的驱动程序。以下是 关联。第二个链接提供32位和64位驱动程序。

编辑2

以下帖子有一些有趣的信息:
Synaptics 触摸板无法在客户操作系统 (Windows XP) 中滚动的问题

该主题的最后一条内容是:

我有几个同事想在笔记本电脑上使用 Vmware 来提供支持。有几个人尝试使用 Sun 的 Virtualbox,其他人则尝试使用 Vmware。滚动功能在 Virtualbox 上工作正常,但 SUN 对此类产品的承诺在过去曾让人们感到失望。

看来 VMware 根本就不太关心 Synaptics,而且它对您的设备的支持也不好。虽然这不能直接回答您的问题,但我认为您需要转到 Virtualbox 才能让触摸板正常工作。

为了让药丸更甜,请参阅如何将 VMware 转换为 Virtualbox

答案3

由于目前没有解决方案,唯一要做的就是填写功能请求

http://www.vmware.com/contact/contactus.html?department=prod_request

只需将问题的前两段粘贴到文本字段中即可。

答案4

Synaptics 的双指滚动与 VMware 的 Unity 模式兼容(播放器 > Unity)。我使用它在 VMware Player 中运行 VS2013,以 Windows 7 x64 作为主机和客户机操作系统。

相关内容