【C#】マウスフックをする

2012-09-06

【C#】マウスフックをする

このエントリーをはてなブックマークに追加

マウスフックはできないみたいなことが書いてあった気がするが、一応ドキュメントがあった。

http://support.microsoft.com/kb/318804/ja

ただEventHandlerを使ってるあたりあまりフックする意味がないかも。

this.Button1.Click += new EventHandler(Hook_Event);

this.Button1.Click += new EventHandler(button1_Click);

というふうに実際の処理とは別にイベントハンドラを追加しておいて

private void Hook_Event(Object sender, EventArgs e)

{

    if (ahoFlg == false) {

        MessageBox.Show("あほか");

        return false;

    }   

    return true;

}

というふうにしておけばいいと思う。

フォーム全体でマウスイベントを無効にしたい場合は便利かもしれないけど、それも同じようにイベントハンドラ追加すればいいと思った・・・。

あとこんな記述があった  

Global hooks are not supported in the .NET Framework Except for the WH_KEYBOARD_LL low-level hook and the WH_MOUSE_LL low-level hook

低レベルのフックしか使えないのと.NET Frameworkではサポートしてないってと書いてある。

一応使えるけど自己責任ってことかな。

どんな弊害が出てくるのかわからないので、実験的なコードだけで使った方がよさそう。