通过 VNC 在 Windows 主机上的 VirtualBox 中 ESC 和 Backspace 不起作用

通过 VNC 在 Windows 主机上的 VirtualBox 中 ESC 和 Backspace 不起作用

我遇到了一个奇怪的问题。我有一个运行 Windows 7 的远程主机。VirtualBox VM 实例正在运行 Ubuntu。

主机运行 TightVNC 服务器。Ubuntu 桌面也支持 VNC。

在本地 Windows 7 系统(笔记本电脑)上,我使用 TightVNC 客户端连接到两个系统中的任何一个。

  1. 如果我直接连接到 Ubuntu VM,ESC 和 Backspace 键可以正常工作。

  2. 如果我连接到 Windows 7 主机,则无法在 Ubuntu 客户机中使用 ESC 或 Backspace。键入这些键时什么也没有发生;按键事件进入众所周知的位存储桶。

  3. 这些密钥在本地工作正常:仅通过 VNC 远程访问 Windows 系统时才会出现此问题。

  4. 该问题与按键有关。我可以通过分别输入 Ctrl-[ 和 Ctrl-H 来获取虚拟机中的 ESC 和退格字符。

  5. 这个问题并不特定于键盘软件布局或硬件。使用 Windows 语言栏切换语言没有任何区别,而且无论我使用笔记本电脑的内置键盘还是插入 USB 键盘都没有区别。

  6. 这不是客户操作系统的问题。此问题不仅出现在 Ubuntu 机器上,还出现在运行 OS X 的 VirtualBox 实例以及 Solaris 中。

  7. VirtualBox GUI 本身接受按键并正常处理它们。例如,如果我调用 Machine/Settings,我可以使用 ESC 关闭该对话框。

答案1

看起来像是一个已有两年历史的 TightVNC 漏洞:http://sourceforge.net/p/vnc-tight/bugs/1239/

解决方法对我有用:在远程 Windows 主机上安装 32 位 TightVNC,而不是 64 位版本。

答案2

您也可以直接通过 VNC 进入虚拟机。

相关内容