WinRoll を左ダブルクリック対応に
Windowsでもシェード機能がほしくて、何かないか探してたらWinRollというのがありました。常駐し右クリックダウンでシェードが切り替わるものです。
左ボタンダブルクリックにできないかと思い、公開されているソースをダウンロードしてみることに。
すると、なんとすべてmasm32なアセンブリ言語のコードで書かれていました。(このコードはC言語っぽいかなりきれいなコードになっているので、Win32プログラミングを知っていたら、どこでなにをやってるかはだいたいわかります。)
で、masm32を探すとここにあるようです。
( http://hp.vector.co.jp/authors/VA014520/asmhsp/chap1.html にも情報がありました。)
ビルドにはあとnmakeも必要で(やってることは少ないので手入力なら無くてもいいけど)、これは.NET SDKにある。昔はmicrosoftからnmake.exeをダウンロードできたけど、今はないみたい。(さらにインストーラを作るにはNSISが必要です。)
あとは一度ビルドしてみて、成功したら、ソースwinrolladd.asmのなか、754行目にWM_NCRBUTTONDOWNとあるので、これをWM_NCLBUTTONDBLCLKに変えてみれば良さそうだ。
つまり:
.elseif eax == 0 && edx == WM_NCRBUTTONDOWN
を:
.elseif eax == 0 && (edx == WM_NCRBUTTONDOWN || edx == WM_NCLBUTTONDBLCLK)
にします。
これでできた。winroll.exeはなぜかシンボルがないというエラーが出て作れなかった*1けど、winroll.dllのほうはうまく作成できました。
nmake winroll.dll
このwinroll.dllをc:\Program Files\WinRollにあるものと入れ替えれば終わりです。
動作も速いし、ダブルクリックでシェードするのでかなり快適です。