2011-01-28 8 views
1

私は、Windows 7 64で32ビットと64ビットの両方のアンマネージアプリを持っています。C#で管理されていないWin32およびWin64アプリケーションのWindowsメッセージを受け取る方法は?

私はC#アプリケーションを受信して​​それが受信しているキーボードメッセージを受信したいので、特定のキーを押すと他の人のために、単にそれらを干渉しないようにアプリに送り返すだけです。

これを検索する正しい方法がわからないので、これがどのように行われるかはわかりません。

また、可能であればキーボードフックを使用しないでください。ちょうど私がやろうとしていることは、アプリのキーボードメッセージを受信したいです。

答えて

2

これは、キーボードフックが設計したものです。キーボードフックの問題(およびおそらくいくつかの追加の問題)がない代替手段はありません。

+0

私はちょうどアプリのメッセージポンプにフックし、それらを解釈することができます、そして別の問題はキーボードフックです)は、グローバルでなければならなかったので、私のアプリから来ている場合を除いて、他のすべてのキーをフィルターにかける必要がありました。 –

+0

あなたはDLLを注入してサブクラス化を話しているようです。これは、(1).NETでは容易ではなく、(2)キーボードフックよりも不安定です。 –

+0

ありがとう、私はここで、基本的に似たようなことをしたいと思っています:http://stackoverflow.com/questions/2880160/listening-to-another-window-resize-events-in-cそれはまだDLLの注入とサブクラス化です? 2番目の答えは、WH_CALLWNDPROCを使用して、グローバルではないアプリケーション用のフックを作成することを示唆しています。これは可能ですか?どう思いますか? –

1

特定のウィンドウにフックを追加する方法については、hereを参照してください。私は他のアプリのメッセージポンプをどう読むのか分かりません。あなたはIMessageFilterでそれを行うことができますが、現在のアプリケーションでのみ動作します...

関連する問題