2012-03-15 18 views
3

メインアプリケーションのセカンダリ(GUIではなく)スレッドから起動されるプラグインDLLがあります。 DLLは、アプリケーションのメインウィンドウからキーボードイベントを取得する必要があります。私はSetWindowsHookEx()を使用しており、それは素晴らしい作品です。Windowsキーボードのフックがデバッガをハングする

しかし、フックがアクティブな状態でVisual Studioでブレークポイントを押してからキーを押すと、Visual Studioとアプリケーションが完全にロックアップされます。これは問題です。通常、コードをステップ実行するためにFキーを使用します。私はマウスを使用し、Visual Studioのデバッグメニューから前進すると、正常に動作します。しかし、F10 et al。そのような習慣は、私は通常、マウスを使用することを忘れています。

キーボードショートカットを戻すためにできることはありますか?または、キーボードを聴く別の方法ですか?

答えて

4

これはかなり避けられないことですが、デバッガブレークでは、フックが通知を処理しなくなり、キーボードが死んでしまいます。別のマシンでリモートデバッガを使用すると、このようなコードをデバッグするのに適しています。 HKEY_CURRENT_USER \ Control Panel \ Desktop \ LowLevelHooksTimeout設定のデバッグ中にWindowsがフックを破棄しないように、フックタイムアウトを増やしたい場合もあります。 WH_KEYBOARD_LLを使用していると仮定します。

関連する問題