我想與Virtualbox-VM進行交互以進行Virtualbox-Guest-Additions的無人值守安裝。因此我必須將擊鍵發送給虛擬機。我能夠通過使用VBoxManage-API,在這裏我把掃描碼的HEX發送到VM要做到這一點:獲取字符的鍵盤掃描代碼
# sends "b" to the VM
VBoxManage controlvm "$VMNAME" keyboardputscancode <HEX>
現在我想給一個完整的命令到VM,如:
mount /dev/scd0 /media/cdrom0<Enter>
所以我必須將該字符串的每個字符轉換爲掃描碼並通過VBoxManage將其發送到虛擬機。
如何將這些字符轉換爲Linux上相應的鍵盤掃描碼?我的虛擬機與我的主機有相同的鍵盤映射。我在找東西,我可以這樣使用:
$ getscancode n
> 31
?
我剛剛發現'showkey -s',它給了我正確的掃描碼。但是,這隻能在我的窗口管理器以外的終端中使用,否則我會得到'無法獲得涉及控制檯的文件描述符。 – ifischer 2012-02-22 13:47:09
'xev'將提供您需要的信息,但不能以'showkey -s'這樣的整齊格式(所以我猶豫不決)。您需要將光標放入黑框,然後輸入您需要的鍵。 – 2012-02-22 16:35:59
另請參見[將ASCII碼翻譯爲AT set 2鍵盤掃描碼](http://unix.stackexchange.com/questions/250377/translate-ascii-codes-to-at-set-2-keyboard-scancodes) – Gilles 2015-12-20 01:22:53