推定四半世紀ぶりのキーフック

<< 戻る   トップ >>

何の因果か、Windows アプリケーションを作っている。例によって呪詛を吐きながらであるが、まあ Microsoft がゆるやかに滅亡へと向かっていると思えば、自ずと呪詛も穏やかなものになる。

このアプリケーションは、ネットの新着情報を監視して、新着情報があればメッセージがポップアップする、と言うものなのだが、デモバージョンが必要だね、ということになっている。ネットのない環境でも、また、実際に新着情報がなくてもポップアップさせて「見せる」必要があるわけだ。で、特定のキーの組み合わせ [Ctrl]+[Shift]+[Z]とかを押したらポップアップするような仕掛けがあればよかろう、ということになった。

ところが、よく考えてみれば、問題のアプリケーションはポップアップ待ちの間フォーカスを失っている。イベント処理するにはとりあえずフォーカスがなくてはいけないから、アプリケーションでのキープレスイベントを待機してもいつまでたってもそんなイベントは発生しないのだ。そなると、グローバル、というかデスクトップ全体のキープレスイベントを待機しなくてはいけなくなる。キープレスのフックなんてプログラムを書いたのは MS-DOS の昔だ。ウィンドウかつマルチタスクな環境ではどうやるんだろう。さらによく考えてみれば、キーのフックをするってことはキーの入力履歴を得ることができるってことで、パスワードを盗むこともできる手口だ。そんなに簡単なのだろうか... と思ったのだが、やはり不正プログラムでなくともそれなりに需要のあることのようだ。

まず、Microsoft そのものが [HOWTO] Visual C# .NET で Windows フックを設定する方法を公表しており、"キーフック C#" あたりで Google 検索すると作例を含めていろいろと出てくる。明日はちょっと腰を据えてキーフックをいじくるとしよう。


作成: 2008-11-19 03:41:16.0更新: 2008-11-19 03:41:16.0
http://museo-anonimo.jp/nanban/?id=707,http://museo-anonimo.jp/nanban/tr/707