Chcę współpracować z Virtualbox-VM, aby wykonać nienadzorowaną instalację Virtualbox-Guest-Additions. Dlatego muszę wysłać naciśnięcia klawiszy do VM. Jestem w stanie to zrobić za pomocą VBoxManage-API, gdzie wysłać HEX z scancode do VM:Uzyskaj kod Scancode klawiatury o znaku
# sends "b" to the VM
VBoxManage controlvm "$VMNAME" keyboardputscancode <HEX>
Teraz chcę wysłać kompletne polecenie do VM, jak:
mount /dev/scd0 /media/cdrom0<Enter>
Muszę więc przekonwertować każdy znak tego łańcucha na kod scancode i wysłać go do VM przy użyciu VBoxManage.
Jak przekonwertować te znaki do odpowiednich skanerów klawiatury w systemie Linux? Moja maszyna wirtualna ma takie samo odwzorowanie klawiatury jak mój host. Szukam czegoś, co mogę użyć w ten sposób:
$ getscancode n
> 31
?
Właśnie znalazłem 'showkey -s', który daje mi prawidłowy scancode. Ale działa to tylko w Terminalu poza moim Window Manager, W przeciwnym razie otrzymam komunikat "Nie można uzyskać deskryptora pliku odnoszącego się do konsoli". – ifischer
'xev' dostarczy potrzebnych informacji, ale nie w tak zgrabnym formacie, jak' showkey -s' (więc nie chcę podawać go jako odpowiedzi). Będziesz musiał umieścić kursor w czarnym polu, a następnie wpisać potrzebne klucze. –
Zobacz także [Przekieruj kody ASC na AT 2 scancodes klawiatury] (http://unix.stackexchange.com/questions/250377/translate-ascii-codes-to-at-set-2-keyboard-scancodes) – Gilles