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


17

我想在VMware guest虚拟机中使用Synaptics的“两指滚动”。

它可以在主机上按预期工作,但VMware似乎不支持它。鼠标光标更改为指示滚动处于活动状态,但VMware guest虚拟机不会对此进行响应。

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

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

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


检查我的解决方案@ superuser.com/a/439474/106787
mreq

@hcris考虑请检查我的回答是否正确:-)
Andrew Zabavnikov 2014年

Answers:


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。如果您vmware_scroll_stop.exe从其他位置开始,则不会卸载.dll(即禁用滚动)。

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

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


2
刚刚更新!
Andrew Zabavnikov 2013年

3
这值得赞扬!
xiamx 2013年

@xiamx对您有用吗?我刚刚收到一条反馈,称它不适用于Player(也许需要进行少量修改)。也许是还应用此修复程序问题blog.alexou.net/2010/07/...
安德鲁Zabavnikov

是的,它运行良好。它也适用于其他带有用户界面驱动程序的输入设备(logitech T650)。虽然我自己重新编译了它,因为我只有v110工具集。你可以把它放在github上吗?因此需要与Player配合使用的用户可以自己
对其

@xiamx好的,我会在几天内完成。只是在开发支持水平滚动的版本时不理会GitHub。
Andrew Zabavnikov

7

许多人抱怨此问题,并且功能请求已提交给Synaptics。

在这里找到了一份成功报告。尽管它适用于Ubuntu,但似乎表明有解决此问题的方法。

我建议您针对主机和访客尝试以下文章中概述的解决方案:
使用Dell Synaptics Touchpad修复Firefox滚动问题

本文提到了两个修复程序:

  1. 从鼠标属性中删除“循环滚动”选项
  2. Synaptics驱动程序替换Dell触摸板驱动程序

如文章第二篇所述:

您可以删除Dell触摸板驱动程序并安装通用的Synaptics驱动程序,该驱动程序对许多人来说效果更好-但它们缺少一些Dell额外的功能。只要您的触摸板达到了您的期望,这是值得的。

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

编辑1

有人报告使用ALPS驱动程序而不是Synaptics成功。
Windows 7的Alps Touchpad驱动程序

一些戴尔笔记本电脑没有Synaptics制造的触摸板。他们有阿尔卑斯触摸板。如果你不知道什么样的你有触摸板,请参阅本岗位有关识别正确的型号。

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

编辑2

以下线程具有一些有趣的信息:
Synaptics触摸板的问题无法在Guest OS(Windows XP)中滚动

线程中的最后一个条目说:

我有几位同事想在笔记本电脑上使用Vmware以获得支持。一些尝试使用Sun的Virtualbox,其他尝试使用Vmware。滚动可以在Virtualbox上正常工作,但是SUN对这种产品的承诺在过去已经烧死了人们。

看来VMware根本不在乎Synaptics,并且您的设备没有得到很好的支持。尽管这不能直接回答您的问题,但我认为您将需要移至Virtualbox才能使触摸板正常工作。

要使该药变甜,请参阅《如何将VMware转换为Virtualbox》


我已经有了Synaptics驱动程序(请参见上文)。本文适用于单指滚动(这也不起作用,并且禁用“ Circular / Chiral”无效),但是如果可以使用其中任何一个选项,我都会感到很高兴。Ubuntu设置听起来很有前途,但是如何在Windows中应用它们呢?
laktak

@chris:我发现的大多数帖子都说VMware根本不支持将Synaptics触摸板作为设备,因此您无法提出要求。无论如何,我还是对另一种对某些人有用的方法进行了编辑。如果它不起作用,您还可以尝试使用VMware以外的其他VM产品。
哈里奇

@harrymc我很确定这是一个Synaptics设备,但在pcidatabase.com上找不到它。硬件ID为“ ACPI \ DLL02EF”和“ * DLL02EF”。
laktak 2010年

好吧,也许我在要求不可能的事情,但这已经困扰了我很长一段时间。我希望有一种方法可以使它像鼠标滚轮一样工作(也许带有仿真)。无论如何,如果没有解决方案,我将为您提供所有帮助!
laktak 2010年

@chris:没什么可失去的,您尝试过ALPS驱动程序吗?另请参阅该驱动程序drivercure.com/driver/...support.dell.com/support/downloads/...
harrymc



1

Synaptics的两指滚动功能适用于VMware的Unity模式(玩家> Unity)。我正在使用它在带有Windows 7 x64的VMware Player中作为主机和来宾OS运行VS2013。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.