2012年7月2日月曜日

qemu-kvm: Windows VistaゲストにVNCで接続して半角全角キーを使う

qemu-kvmで仮想化したWindows Vistaのゲスト(以下、Vista)へ、qemu-kvmの -vnc オプションで有効になるVNCディスプレイ経由で接続した時、半角全角キーを使えなかった。
もちろん、VNCクライアントは半角/全角対応のVNCクライアントを使ったのに。

それどころか、CTRLキーが効かなかった。何故かCTRLキーが半角/全角キー扱い。
物理PCで動かしていたVistaなので、レジストリでCTRLとCapsLockを入れ替える設定をしてた。
この入れ替え設定が、何故か影響していた。当該レジストリ設定(Scancode Map)を消せば、CTRLキーは使えるようになった。

調べてみた所、半角/全角キーを押すと、Vistaは不明(あるいは無効)なキーが押されたと認識しているようだった。qemu-kvmの -k (keyboard layout)オプションで ja(日本語) を選択していた分もあるのか、半角/全角を除くキーは問題なく認識されていたので、不明なキーを半角/全角キー扱いしてもらうことにした。
具体的には、レジストリ設定ファイル(.reg)で表現すると、
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,29,00,00,00,00,00,00,00
という内容で、レジストリエディタのスクリーンショットで表現すると、





この通り。設定後、Vistaを再起動すれば、半角/全角を使えるようになった。

0 件のコメント:

コメントを投稿