タグ

関連タグで絞り込む (3)

タグの絞り込みを解除

グローバルフックに関するkatowのブックマーク (3)

  • 覚書/C♯/グローバルフック - PukiWiki

    グローバルフック † WH_KEYBOARD_LL, WH_MOUSE_LLの2つは特別な方法でフックするためC#でも使用可能です。これ以外のグローバルフックはC#ではできません。通常グローバルフックはDLLにする必要がありますが、この2つは特別でexeファイルからもフック可能です。 モジュールのインスタンスハンドルはSystem.Runtime.InteropServices.Marshal.GetHINSTANCE(typeof(T).Module) とやれば取れます。しかしながらこれをexeファイルを対象に行い、VS 2005を使ってデバッグ実行をする場合vshost.exeが走っているため正しい値が取れません。回避方法としてはデバッグオプションでVisual Studio ホスティングプロセスを有効にするというオプションを無効にする、GetModuleHandle(NULL)を呼び

    katow
    katow 2009/05/29
    詳しい。ありがたい。
  • グローバルフック・ザ・キーボード

    今日は、過去に書いたコードの中から、キーボードフックを実装するクラスを紹介しましょう。 .NETではフックに関して、「グローバルフックは使えない」と説明されています。DLLにグローバルフックで使用されるコールバック関数を実装しなければならないのに、.NETではそのDLLを作れないからです。 なんですが、何故かWH_KEYBOARD_LLやWH_MOUSE_LLはグローバルフックが可能なようなのです。理由は定かではありませんが。ひょっとしたら何らかの環境依存があるのかも知れません。ですから当然動作保証などできません。少なくとも私の環境では動いています。 コードそのものはそう大したことはしていません。SetWindowsHookExとその周辺を軽くラップした程度です。 テクニックとしては、直接SetWindowsHookExが要求するコールバックを外に見せるのではなく、コールバックメソッドその

    グローバルフック・ザ・キーボード
    katow
    katow 2009/05/29
    キーボードとマウスだけは.NETでもフックできる。
  • .netでグローバルフックを掛ける方法。 - くらげのChangeLog

    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_

    .netでグローバルフックを掛ける方法。 - くらげのChangeLog
  • 1