我使用的是 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"
答案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 组合键。如果您同时按下两个按钮,则确认出现的对话框后,该工具将退出。