CATEGORY:windows
Windowsのグローバルフックで、ローレベル(WH_MOUSE_LLとWH_KEYBOARD_LL)フックはDLLを使わずに出来るということを今更ながら知った。衝撃だ。記事の日付がかなり以前であるし、Windowsの開発者達には結構知られていたのだろうか。自分のアンテナの低さにビックリしたし、何より仕事上の説明でグローバルフックは各プロセスがDLLをロードして云々...なのでそのプロセスがアタッチ出来るようネイティブのDLLを作らないとダメですよ、なんて説明を訳知り顔でしていた自分にも更にビックリした。いいけど。もういいけど。まあね、今更そんなこと言われてもね、知りませんよって話ですよね。うん。見なかったことにしよう。
タダである。無料なのだ。ロハなのよ。何がって、Visual Studio 2005ですよ。
無料。この言葉にどれほどの魔力が込められているのかを、ワタシの過去になぞらえながら語ってみると、例えばOpera。言わずと知れたWEBブラウザだ。言わずと知れた、という程知られているかは知らない。まあちょっとPC関係に詳しい人には知れた、ぐらいにしておこうか。うん。で、Operaがいつの間にかタダになったけど、その前に1日だけライセンスを無料にします!という日があった。で、勿論ワタシはライセンスを取得した。だってタダだからね!Operaがタダだから、ではない。タダだから。それだけのためにライセンスを貰ったのだ。だってもう使ってないからね。うん。それから、Div X。これも一日ライセンスを無料で配ってた日があった。当然貰った。だってタダだから。それ以外の何物でもない。だって使わないんだもの。codecとかじゃなくて、エンコーダだから、使う機会がまるでない。でも貰った。だってタダだもの。
そんなタダ好きタダマニアのタダ道楽を満たしてくれる次なるアイテムが、Visual Studioですよ。Express Editionとかいうのがどーいった類の物なのかは分からないけど、何よりタダだから。日本語版は11月17日から落とせるみたいなので、日本のタダマニアは鼻息荒くマイクロソフトのWEBサイトを眺めている事でしょうね。知らないけど。いや、少なくともワタシは鼻息荒く待ってます。使わないけど。
仕事の話なのだけど、Win32APIのFindWindowが複数の該当するウィンドウを見つけた場合どれを返すのか?ようはFindWindowの検索順が知りたい。それはもう知りたい。猛烈に知りたい。動作としてはZオーダー順に探しているようなのだけど、それでは不十分なのです。それが保証されている動作だという確証が必要なのです。公式なドキュメントも併せて必要なのです。それがどこを探しても書いてない。会社帰りに本屋によってWin32APIの本を探してみるも見つからない。もう公式のドキュメントとかじゃなくてもいいのに。WEBで個人が書いたのでもいいよ。というユルユルな考えも浮かんだのだけど...というところで、じゃあワタシがここにFindWindowの検索順をZオーダー順ですよ、と書いちゃったらいいじゃない。で、それを見せたらいいじゃない。
と思ったけど、もしコレ書いてるのがワタシだとばれたら大変だという事に気付いて考え直す。とりあえずチンコとかタマキンとか書いておいたらOKみたいな雰囲気のサイトを持ってるなんて事が職場にばれたらどれだけキツいか。そうね、例えてみるなら。えーと、人間ドックに行って直腸検査をしたらその医師が中学時代の同級生だったとか。そんな感じ。昔は『カンチョー!!』とかそんなノリで突き刺したり刺されたりしてた仲間が、大人になったら剥き出しのアナルに本気でフィンガーをイントゥーする訳ですよ。そんな気まずさですよ。多分。そんな経験無いけどさ。
だから。バレる訳にはいかない。だからここにFindWindowの動作を最もらしく書いても意味がない。だから、誰かどこかに書いてくれないかしら。いやそんなインチキでなくても、FindWindowの検索順をワタシに確信させてくれないかしら。