Apple Wireless Keyboard(JIS)

Apple+Bluetooth+テンキーレス(+JIS配置)に惹かれて衝動買い.
サンワサプライ Apple Wireless keyboard用防塵カバー FA-TMAC2
アップル Apple Wireless Keyboard (JIS) MB167J/A
PLANEX PS3 Bluetoothコントローラ対応 Bluetooth Ver2.1+EDR Microサイズ USBアダプタ (Class2/10m) BT-MicroEDR2X

WindowsVirtualBox(←重要)で使う上で少し問題があったのでメモ.
はっきりいって,超回りくどい事をしているので,
普通の方はApple Wireless Keyboard Helperをインストールするだけで良いと思います.

レジストリで特殊キーを調整

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,06,00,00,00,38,00,5b,e0,5b,e0,38,00,\
  1d,e0,5c,e0,7b,00,71,00,79,00,72,00,00,00,00,00

(registryのシンタックスがあるのにビビッタ^^;)

06,00,00,00,    ; 5箇所(+1)変更
38,00,5b,e0,    ; lAlt(0038) -> lWin(e05b)
5b,e0,38,00,    ; lWin(e05b) -> lAlt(0038)
1d,e0,5c,e0,    ; rWin(e05c) -> rCtrl(e01d)
7b,00,71,00,    ; 英数(0071) -> 無変換(007b)
79,00,72,00,    ; かな(0072) -> 変換(0079)
00,00,00,00     ; おまじない?

注)実は無変換と変換は完全には置き換わってません.詳細は↓に.

Apple Wireless Keyboard Helperをインストール

ここからダウンロード.
このツールを起動することで音量調整や曲再生等が使えるようになります.すばらしい!

私はデフォルトの設定に加えて,EjectボタンをDeleteにあてました.

def OnDown_Eject():
  Util.SendInput(Keys.Delete)

問題点をAutoHotkeyで修正orz

AutoHotkeyについてはここ参照.Windowsのナンデモツールです.
上記のレジストリの設定では無変換変換が動作しません.
AutoHotkeyをいじっていて気付いたのですが,
このキーボードの英数かなは何故か押上の信号しか送っていません.
(普通はキーを押して離すと,押下と押上の応答があります.)
そこでキーをカスタマイズ.

;; apple wireless keyboard
; Muhenkan
$vk1Dsc07B up::Send,{vk1Dsc07B}
; Henkan
$vk1Csc079 up::Send,{vk1Csc079}

押上が入ったら,押下,押上を返します.
ここまで来ると,無理やりすぎて何がなんだか・・・・.

Virturalboxで無変換&変換

右Ctrl(ホストキー)を押すだけ.

ホストキーにはキーボードの自動キャプチャのトグルの機能があり,
ホストOSのキー入力を透過的に扱えるようになっています(多分).
問題だったのはAWKHのキーが透過的に入力できないこと*1
そのせいでこんな回りくどい事になってます.


もっと簡単な方法があるかもしれませんが,とりあえず動いてるので良しとします.

*1:AutoHotkeyで調べてみるとArtificialな入力になっているらしい.????