【发布时间】:2012-02-22 13:13:33
【问题描述】:
我想与 Virtualbox-VM 交互以进行 Virtualbox-Guest-Additions 的无人值守安装。因此,我必须将击键发送到 VM。我可以通过使用 VBoxManage-API 来做到这一点,我将扫描码的 HEX 发送到 VM:
# sends "b" to the VM
VBoxManage controlvm "$VMNAME" keyboardputscancode <HEX>
现在我想向虚拟机发送一个完整的命令,例如:
mount /dev/scd0 /media/cdrom0<Enter>
所以我必须将该字符串的每个字符转换为扫描码,并使用 VBoxManage 将其发送到 VM。
如何在 Linux 上将这些字符转换为相应的键盘扫描码?我的虚拟机与我的主机具有相同的键盘映射。我正在寻找可以这样使用的东西:
$ getscancode n
> 31
?
【问题讨论】:
-
我刚刚找到
showkey -s,它给了我正确的扫描码。但这只适用于我的窗口管理器之外的终端,否则我会得到Couldn't get a file descriptor referring to the console。 -
xev将提供您需要的信息,但不像showkey -s那样简洁的格式(所以我很犹豫是否给出答案)。您需要将光标放在黑框内,然后键入您需要的键。