- - PR -
キーボードのフック
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-02-14 14:50
はじめまして、hiroakiです。
C++で SetWindowsHookEx を使用しキーボードをフック使用としています。 ウィンドウがアクティブの時にはちゃんと処理ができるのですが、 非アクティブにして、キーボードを押すと処理されず、しかも、フ ックも解除されてしまいす。(解除しようとすると失敗するので) winMEでは正常に動きましたが、2000,XPで上記の問題が発生します。 どのようにすればよいのか教えてください。 SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, hInst, 0); で呼び出しています。 |
|
投稿日時: 2004-02-14 16:20
こんにちは。
.NETでのキーボードフックについてはあまりよく知らないんですが、Win32でやってたころの知識では、アプリケーションを超えてシステムフックするには、DLL化しないといけませんでした。 .NETでも同じかな。というか.NET? Win32ですが、こちらが参考になるかも http://www.kumei.ne.jp/c_lang/sdk2/sdk_161.htm # #SetWindowsHookExと書いてありましたな。ということでWin32Apiですね。。。 [ メッセージ編集済み 編集者: nodera 編集日時 2004-02-14 16:21 ] |
|
投稿日時: 2004-02-14 18:21
諸農です。
VC#でのトピックになりますが、こちらが参考になると思います。 [HOWTO] Visual C# .NET で Windows フックを設定する方法 http://support.microsoft.com/default.aspx?scid=kb;ja;318804 マネージドC++(VC++.NET)では可能なんでしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
|
投稿日時: 2004-02-14 21:53
hiroakiです。
諸農さん、noderaさんご返事ありがとうございます。 Win32でシステムフックを使用したことがないので、DLL化しないといけないとは 知りませんでした。 .NETでもできますね。フックを使用するソフトを作成している人がいましたので。 だから、何でできないのか不思議だったんですが、そのソフトもフックの ところは DLL で使用してました。ようやく解決です。 C#でのトピックですが、Framework はグローバルフックができないとなってます ので、非アクティブ時には取得できなかったです。 ただ、winME でグローバルなシステムフックできたのはなぜなんでしょうかね。。。 |
1
