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を再起動すれば、半角/全角を使えるようになった。

UltraVNCは公式版で半角/全角キーと日本語に対応

Windows XP以降で動作する無料VNC クライアントを使ってみた

UltraVNC 1.0.9.6.2 (2012年2月16日リリース)
http://www.uvnc.com/downloads/ultravnc.html
公式版で半角/全角キーに対応(※4年以上前から)
インストーラを使わないZip配布もあり、管理者権限が無くても使い始めやすい。

日本語メニュー表示も可能
コマンドラインでも使える。例えば以下のとおり
> vncviewer.exe -JapKeyboard -notoolbar -nostatus -password NAISYO 192.168.0.1:1

・TightVNC Version 2.5 (2012年4月19日リリース)
http://www.tightvnc.com/
半角/全角キーに非対応

・RealVNC
VNCの本家みたいなので使ってみたかったが、ダウンロードが面倒そうなので試していない。