VMWare Workstation 6.5 客户机操作系统中的“后退/前进”鼠标按钮不起作用

VMWare Workstation 6.5 客户机操作系统中的“后退/前进”鼠标按钮不起作用

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

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

我隐约记得不久前看到过关于编辑虚拟机配置文件以指定 5 键鼠标而不是默认的 3 键设置的内容,但我似乎无法在 VMWare 文档中找到有关如何执行此操作的任何具体说明。有谁知道是否存在这样的解决方法,或者 5 键鼠标功能是否不支持?

答案1

在 vmx 文件中添加 usb.generic.allowHID = TRUE 后,只需为该 VM 启用 USB,然后转到硬件管理器(客户系统)并“扫描硬件更改”。然后,VM 将识别新的 USB 设备,之后您的后退/前进按钮应该可以正常工作,而无需在主机系统中停用鼠标。

答案2

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

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

保存文件并退出记事本。

答案3

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

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

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

答案4

它不能直接工作。因为 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”,并且如果按下任何 Thumb 鼠标按钮(代码 05 + 06),则按下 Alt+Left/Alt+Right 组合键。如果您同时按下两个按钮,则确认出现的对话框后,该工具将退出。

相关内容