「変わってるね」は褒め言葉

一部上場の大企業を辞めて起業したCEOの戯言

WindowsでMac用USBキーボードを使う方法、ではまった

Windows7 64bit に Mac用USBキーボードを繋いで使おうとしたら色々はまったので俺用メモ。

検索すればいくらでもやり方はでてくるのだが、自分の場合は Apple Wireless Keyboard Helper を起動すると、

Apple Wireless Keyboard が接続されていません。

とエラー表示される。orz...

ワイヤレスキーボードじゃなくてUSB有線だからだめかなーと色々検索すると最新のコードをもってビルドすると良い ww24.jp

との情報が。しかし、ビルドしてもやっぱりダメ。

私がもっているキーボードは Apple Keyboad (テンキー付きJIS, MB110J/B) www.apple.com

これです。OSが10.6.8以降でないと動作しないというモデルチェンジのため、どうやらこれがいけないっぽい。

ソースコードをみてみると、キーボードの Product ID (PID) が定義されていて、Apple Keyboard かどうかチェックしているようなので、強引にコードをいじってしまいました。

Helper.cs 内の最初の方に

private const UInt32 PIDAppleKeyboardJIS = 0x222;

というコードがありますが、ここの 0x222 を 0x251 に修正するだけで( `д´)b オッケー!!

private const UInt32 PIDAppleKeyboardJIS = 0x251; // 0x222 Please check PID in device manager

これでビルドして exe 叩いたら見事動きました。作者さん、ありがとう!

PIDは、デバイスマネージャーを開いてHIDキーボードを選択、その中で「詳細」→「プロパティ」→「ハードウェアID」をみると書いています。

恐らく、今後モデルチェンジなどしてPIDが変っても新しいキーなどが増えない限りは問題ないように感じます。

あとは、スクリプトをちょこっといじっておしまい。私は Emacs 多用派なので Control は A の横にないとダメなので、これで設定は充分です。

ビルドってなに? VisualStudio って? というひとには上記の方法は向きません。私がビルドしたのを配ってもいいのですが、モデルチェンジの度にビルド、動作確認できないので....スミマセン.

余談) 本来は、繋がっているHIDキーボードをなめて設定時に「このキーボードをAppleKeyboardとして認識させる」というアプリにしておけば良いんでしょうけど、やはりいつモデルチェンジで動かなくなるかわからないから作者さんもハードコーティングしたんでしょうね...