2012-04-24 39 views
4

win api GetKeyboardStateを使用して、システム全体のすべてのキーボードプレスを追跡しています。GetKeyboardStateがリモートデスクトップのフルスクリーンモードで動作しない

これはうまく動作しますが、リモートデスクトップで面白い動作をします。

リモートデスクトップがWindowsモードの場合、これは正しく動作しますが、リモートデスクトップがフルスクリーンの場合は動作しません。

誰もこの経験がありましたか、フルスクリーンのリモートデスクトップでキーストロークを取得する方法はありませんでしたか?

おかげ

+0

「動作しない」ということを詳しく教えてください。 'GetKeyboardState'はグローバルステートではなくローカルステートだけを返すので、システム全体のキーボードの押下は追跡されません。 –

+0

私は、あなたがそれらのフックを使用してフルスクリーンでリモートデスクトップからキーボードキーをキャプチャすることができないように見えることを意味します。おそらくそれらをバイパスします。 –

+0

これまでは働いてはいけません。 'GetKeyboardState'は他のスレッドグループから状態を取得できません。 (アタッチメントゲームがない場合、スレッドグループは基本的には単一のスレッドです) –

答えて

0

使用フック、あなたは他のプログラムの前にKEYSTATEを受け取ることになりますし、あなたもキー操作をキャンセルすることができます。 1つのフックを濡らすためにuser32.DLLの "SetWindowsHookExW"を使用し、1つのフックを取り外すために "UnhookWindowsHookEx"を使用してください。 多くのサンプルコードがありますが、これを試してくださいhttp://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

+0

私のアプリケーションでは、コードプロジェクトから同様のサンプルコードを使用しています。http://www.codeproject.com/Articles/7294/Processing-Global-マウスとキーボードのフックCでサンプルを試しましたが、フルスクリーンのリモートデスクトップでも動作しません。 –

+0

これで、フルスクリーンのリモートデスクトップがすべてのキーストロークを取り消す "KeyboardHookProc"機能を使用しているため、問題が発生します。私はGetAsyncKeyStateを使用しようとします、もしそれが動作していなければ、私はもうアイデアを持っていません。 – Tearsdontfalls

関連する問題