后退/前进鼠标按钮在VMWare Workstation 6.5 Guest OS中不起作用


26

我正在使用Logitech G9鼠标,并在Vista x64上运行VMWare Workstation 6.5.3。来宾操作系统是Win XP,并安装了最新版本的VMWare Tools。在来宾操作系统中,向左/向右按钮和鼠标滚轮滚动工作正常,但是显然无法识别向后/向前按钮。

我也尝试在来宾操作系统中安装Logitech软件,但仍无法识别后退/前进按钮。(我真的没想到这会起作用,因为来宾操作系统实际上并没有直接将鼠标硬件视为Logitech G9。)

我隐约记得在一段时间后,您发现编辑虚拟机配置文件以指定5键鼠标而不是默认的3键设置,但是我似乎无法在VMWare文档中找到任何具体方法。有谁知道是否存在这样的解决方法,还是仅不支持5键鼠标功能?

Answers:


18

将usb.generic.allowHID = TRUE添加到vmx文件后,只需为该VM启用USB,然后转到Hardware Manager(来宾系统)并“扫描硬件更改”即可。然后,VM将识别出新的USB设备,然后您的后退/前进按钮将起作用,而无需停用主机系统中的鼠标。


谢谢!这似乎对我来说非常有效。不知道我是否从未尝试过此操作,或者不确定是否已在VMWare Workstation 7(我刚刚升级)中修复了某些问题,但是无论哪种方式,谢谢!
Tim Lara

4
我只是遇到了同样的问题,试图使前进/后退按钮与来宾操作系统一起在Ubuntu上使用。事实证明,我还需要mouse.vusb.enable = "TRUE".VMX文件,以使其正常工作。
Arjen 2012年

还有其他人是否有问题,尽管设置了usb.generic.allowHID和mouse.vusb.enable,仍需要从可移动设备菜单中选择鼠标(因此将其与主机断开连接)真实吗?我有一个Ubuntu主机和一个Red Hat访客
MattSayar 2014年

23

使用记事本编辑.VMX文件(VM关闭时)并添加以下行:

usb.generic.allowHID = "TRUE"
mouse.vusb.enable = "TRUE"

保存文件并退出记事本。


+1与下面不必要的复杂答案相比,这非常有效,而且非常简单。
Hubro

这似乎不再适用于工作站9。
猎豹

@Cheetah我可以确认它做工作站9.工作
ablacksheep

对我来说,也可以通过Logitech游戏软件安装Logitech G700。使用Ubuntu 14.04。如上所述,添加了以上几行,并立即可以使用。
Halsafar 2014年

与在Workstation 12中运行Ubuntu 15.10的Logitech G700完美协作。谢谢!
jaseeey '16

9

对于工作站10,您在.vmx中需要另一行,而不是前面的建议。现在是:

usb.generic.allowHID = "TRUE"
mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"

https://communities.vmware.com/message/2328267#2328267


根据您所链接的讨论,第一行似乎是不必要的,并且我可以确认它在没有第一行的情况下对我有用。我在Vagrantfile中使用了此功能,以允许我在Vagrant VM中使用前进/后退功能,因为那是我整天工作的地方。 vmw.vmx["mouse.vusb.enable"] = "TRUE"vmw.vmx["mouse.vusb.useBasicMouse"] = "FALSE"
dragon788 '16

不幸的是,该解决方案不适用于VMWare Player 12,您对此有解决方案吗?
Erik

3

它不能直接工作。因为VMware的通用鼠标仅模拟6个状态。(鼠标左,右键和中键,向上,向下,按下滚轮)

但是,作为一种解决方法,您可以使用我刚刚在AutoIt中编写的工具,因为我也确实需要此功能。

#include <Misc.au3>

$dll = DllOpen("user32.dll")

Opt("WinTitleMatchMode", 2)
Opt("TrayIconHide", 1)
$vm = WinWait("VMware Workstation")

While True
    If WinActive($vm) Then
        If _IsPressed("06", $dll) Then
            Send("{AltDown}{Right}")
            While _IsPressed("06", $dll)
                Sleep(1)
            WEnd
            Send("{AltUp}")
        ElseIf _IsPressed("05", $dll) Then
            Send("{AltDown}{Left}")
            While _IsPressed("05", $dll)
                Sleep(1)
            WEnd
            Send("{AltUp}")
        EndIf
    ElseIf _IsPressed("05", $dll) And _IsPressed("06", $dll) Then
        If MsgBox(1 + 262144, "Exit", "Do you really want to exit...?") == 1 Then ExitLoop
    EndIf
    Sleep(1)
WEnd

DllClose($dll)

只需使用AutoIt自己编译它,或从我的网站空间下载编译的可执行文件:http : //jtmeyer.de/mousetool.exe 这将等待标题中包含“ VMware Workstation”的窗口以及任何“拇指鼠标”按钮按(代码05 + 06)Alt + Left / Alt + Right的组合键。如果同时按下两个按钮,则在确认出现的对话框后,该工具将退出。


与VMware播放器使用,这将工作$vm = WinWait("[CLASS:vmware.fullscreenwindow]")
布赖恩

很好的解决方案!我已经用autohotkey实现了,但是概念是一样的。公认的解决方案对我来说效果不佳,是的,按钮可以使用,但是鼠标移动感觉很奇怪(某种不良的加速...)。
flagg19

1

截至2018年:

这是VMWare已知错误,但仍未解决。

我尝试了所有答案。它们都不适用于VMWare 14.1.3下的Windows 10

降级到VMWare 12.0.1解决了我的问题。


0

在虚拟机的VMX文件中添加此参数。

usb.generic.allowHID = TRUE

您的按钮现在应该可以工作了-无需安装Logitech软件或进行任何其他操作。


2
谢谢-此设置确实起作用,但有一个警告:您必须在客户机上启用USB,然后通过[VM-> Removable Devices]菜单将鼠标“连接”到客户机。这确实启用了后退/前进按钮,但也使鼠标与主机OS断开连接!由于我经常在来宾和主机之间来回切换,因此这对我而言并不是一个切实可行的解决方案。如果您在来宾操作系统中长时间停留,尽管效果很好。如果没有其他解决方法,尽管如此,我可能仍然会接受这个答案。
Tim Lara

-1

对于Windows主机,请使用AutoHotKey更改鼠标按钮映射:

 XButton1 :: !^+{NumpadLeft}
 XButton2 :: !^+{NumpadRight}

然后在来宾操作系统中将它们映射回去:

 !^+{NumpadLeft}  :: XButton1
 !^+{NumpadRight} :: XButton2
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.