在 VMware 客户机中使用 Synaptics 触摸板滚动

lak*_*tak 17 windows-7 vmware-workstation synaptics-touchpad

我想在 VMware 来宾中使用 Synaptics“双指滚动”。

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

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

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

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

And*_*kov 22

好的,所以我做了一项研究并成功了。

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

以前在«有用:)有趣»:

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

所以,我做了以下 - 只是将 a 注入.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

主要说明:在 VM 运行时运行相应的可执行文件。

另一个主要评论:不要移动hook.dll*.exe's 在滚动打开后。如果您vmware_scroll_stop.exe从其他位置开始,它不会卸载.dll(即禁用滚动)。

更新:有一个增强版本 (由 Anthony Prieur 增强,非常感谢他!),它也支持 VMware Player。 也可以使用从名为VMWareTrackPadScroller 的程序派生的程序,该程序 具有简单的用户界面。

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

  • 这值得点赞! (3认同)
  • 刚刚更新了! (2认同)

har*_*ymc 7

很多人都抱怨过这个问题,功能请求已经提交给 Synaptics。

在这里找到了一份成功报告。虽然是针对 Ubuntu 的,但似乎说明这个问题是有解决方案的。

我建议您针对主机和来宾尝试以下文章中概述的解决方案:
Fixing Firefox Scrolling Problems with Dell Synaptics Touchpad

文章提到了两个修复:

  1. 从鼠标属性中删除圆形滚动选项
  2. Synaptics 驱动程序替换戴尔触摸板驱动程序

正如文章所说的第二个:

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

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

编辑1

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

某些戴尔笔记本电脑没有 Synaptics 制造的触摸板。他们有阿尔卑斯触摸板。如果您不确定您拥有哪种触摸板,请参阅有关识别正确型号的帖子

当我帮助我的用户将他的 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


lak*_*tak 3

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

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

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