.netでグローバルフックを掛ける方法。

http://hongliang.seesaa.net/article/7539988.html
公式では掛けられないと言ってるが、それは嘘らしい。


ここで紹介されているクラスにまとまったやつは驚異的に楽。
http://azumaya.s101.xrea.com/wiki/index.php?%B3%D0%BD%F1%2FC%A2%F4%2F%A5%B0%A5%ED%A1%BC%A5%D0%A5%EB%A5%D5%A5%C3%A5%AF
このクラスを組み込めば、実質2行で書くだけでグローバルフックでキー取得が出来る。というか、組み込んだだけでグローバルフックは既に実現されてて、それを利用するためのイベントを2行で書ける。


KeybordCapture.KeyUp += new EventHandler(KeybordCapture_KeyUp);
void KeybordCapture_KeyUp(object sender, KeybordCapture.KeybordCaptureEventArgs e)
{
this.Text = Convert.ToString(e.KeyCode);
}
注意点としては、VisualStudioで実行するときはデバッガプロセスの関係で、これは正常に動かないという点。
リリースコンパイルされたモジュールでないと、正常に動作しない。