ハロー、コピペプログラマ!
0.4.0 -> 0.4.1 修正 * 設定ファイルの生成位置の決定方法を変更 * ウィンドウ一覧の絞込み方法を変更 * 二重起動の判断にMutexを使用
TOKKY.COMさんが指摘された点(記事日付060120)を修正しました。公開はしていませんけど。*1
設定ファイルの生成位置の決定方法なんですけど、GetCurrentDirectoryで作業ディレクトリを手に入れてたところを、GetModuleFileNameで実行ファイルパスもってきて拡張子部分を切ったあとlstrcatで".ini"はっつけて てな方法に変更しました。これでたぶん実行ファイルと同じパス・同じ名前で・拡張子が違うものってパスになりますよね?あんまり自信がないです、GetModuleFileNameがちゃんと実行ファイルのフルパス返してくれるのかわからないので…… ゴミ(設定ファイル)撒き散らしてしまい申し訳ないです。
ウィンドウ一覧はTaBrowserが入るように、よりAlt+TABに近くなるように。参考にしたのは、「http://www.microsoft.com/japan/msdn/windows/windowsxp/xpvisualstyles.asp」の一部分である以下の部分。
条件には、ウィンドウがアプリケーション ウィンドウであるか、ウィンドウをアクティブにすることは可能か、表示可能か、ToolWindow かどうか、などがあります。
WS_EX_APPWINDOW。アプリケーションウィンドウかってのはこれかと思ったので、これを条件に追加して、タイトルの有無を条件から消しました。GetWindowLongPtrでウィンドウスタイルを持ってきて、条件としてチェックしたいスタイルと論理積とって、0かそうじゃないかでチェック。 まずVisibleをチェック、それでAPPWINDOWがついてればリスト追加、そうじゃなくてTOOLWINDOWがついていればリストに入れない、そうじゃなくてオーナウィンドウで無効なウィンドウじゃなかったらリスト追加。文章で書いてもどういう風にくくられてるかわかりにくいし、わかったところで、だからどうしたって話ですけど。 参考にしたところの文章が「など」で終わってるのは気になるけれど、TaBrowserもリストに表示されるようになったし*2、一応それっぽく動作するので満足。
Mutexに関しては、あんましよくわかんないけど、ほかの人がつけないような名前つけておけば区別できるよってことかな。ここは9割コピペなんでなんとも。