Windows7用X Mouse設定ツール(コマンドライン)を作ってみた

(追記: GUIつけました→ XMouse設定ツールにGUIをつけてみた - ラシウラ)

UL20A Windows7セットアップ - ラシウラのXMouse化ですが、Vistaのときでも同じことやっていて、いちいち覚えてられないので、C#でX-Mouse設定のレジストリをいじるコードを書きました(UL20Aでの初プログラミングです)。このツールは、コンソールで使うようになってます。

ビルド

XMouse.exeのビルドは、上記gistからrawでファイルを落としてから、cscにかけるだけです。

cygwinがあれば、以下の二行を実行すればいけるでしょう:

wget http://gist.github.com/raw/247329/cb6c5cf89c8b9453d502310fb4e6a6c2b4b4f78b/XMouse.cs
/cygdrive/c/Windows/Microsoft.NET/Framework64/v3.5/csc.exe XMouse.cs

また、Windows7標準添付のPowerShellを使うなら、以下の二行で同じことができます:

(New-Object System.Net.WebClient).DownloadFile("http://gist.github.com/raw/247329/cb6c5cf89c8b9453d502310fb4e6a6c2b4b4f78b/XMouse.cs", "XMouse.cs")
C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe .\XMouse.cs

(gistは編集するとrawのURLが変わるため、実際のXMouse.csのURLは違うかもしれません。また環境によっては、csc.exeのありかは、Framework64がFrameworkだったり、v3.5がv3.0だったりするかも)

使い方

注: 設定変更後にマウス設定が機能するのは、いったんログアウトして再ログインしたときになります。

ヘルプと現在のX-Mouse設定

(引数なしで実行)

$ ./XMouse.exe 
Usage: XMouse [on [NUM]|off]
Options: 
 on: follow mouse activation
 on NUM: follow activation then auto raise after NUM msec
 off: disable follow activation/auto raise
Current XMouse Setings:
  Follow Activation: True
  Auto Raise: True
  Raise Time (msec): 500
自動フォーカスを有効にする
./XMouse.exe on
自動フォーカスに加え、500msec後にオートレイズを有効にする
./XMouse.exe on 500
X-Mouse設定をやめる
./XMouse.exe off

ソース

感想

cscでは、

masks[0] |= 0x40

コンパイルがとおるのに

masks[0] &= ~0x40

コンパイルがとおらないんだなあ。