アーカイブ

2008年 7月 10日 のアーカイブ

32bitアプリによるグローバルフックでは、64bit版Windowsのエクスプローラは捕まえられないが、
.NETアプリなら32bitでも64bitでも動作するというこで、作ってきたタブマンコだが、
オマケでつけたマウスホイールのグローバルフックも、自動で32bitか64bitに切り替わってしまう。
タブマンコを64bitで動かすと、64bitアプリに向けられたマウスホイールはキャッチできるが、
32bitアプリに向けられたマウスホイールはキャッチできない。
64bit版Windowsでは、エクスプローラを捕まえるだけなら32bitを気にする必要はないが、
全てのアプリに向けられたマウスホイールをグローバルフックで捕まえるのなら、
64bitと32bitと両方の実行ファイルを起動する必要があるというわけだ。
よって、アーカイブには実行ファイル二つとDLL二つが含まれることになる。

DLLがたくさんあるのは別にどうでもいいが、実行ファイルが複数になるのは好ましくない。
ダウンロードして解凍して、どれを起動するかっていう時点で悩ませてはいけない。
そうならないために、たとえばインストーラーを作るなどして、わかりやすくする必要がある。
インストーラーなしで配布する形態では、どれが実行ファイルか一目瞭然であるか、
もしくは、説明書やヘルプをつけて、どれを起動すれば良いか明記する必要がある。
よりよいのは、実行ファイルが一つしかない事だが、今回は絶対に二つ必要なので、
しかたなく、readmeファイルをつけた。
また、本体じゃない方にはアイコンをつけないとか、間違って起動しても動かないとか配慮してみた。

あと、せっかくスタートアップに入れておいても、デスクトップ表示後しばらくしないと起動しないので、
スタートメニューのスタートアップではなく、レジストリのスタートアップに入れるってのを実装したが、
それでもデスクトップ表示後だいぶ待たされて、その間に単品のエクスプローラを起動出来てしまう。
しょうがないので、既に起動されている単品エクスプローラを取り込むってのをメニューにつけた。
最初は、タブマンコの起動時に自動で単品を取り込むってのをやってみたのだが、
それだと作業中のエクスプローラがワープして取り込まれるので、作業に支障が出るだろう。
かといって、取り残された単品エクスプローラをどうにも出来ないのはまずいので、手動でやる事にした。