2012-04-24 64 views
4

我使用win api GetKeyboardState來跟蹤系統中的所有鍵盤按鍵。GetKeyboardState無法在遠程桌面全屏模式下工作

這工作正常,但它具有有趣的行爲與遠程桌面。

如果遠程桌面處於Windows模式,則該功能可以正常工作,但如果遠程桌面爲全屏,則該功能無效。

有沒有人有這種或沒有任何經驗,如何在全屏遠程桌面獲得按鍵?

感謝

+0

請詳細說明「不起作用」是什麼意思。請注意'GetKeyboardState'只返回本地狀態,而不是全局狀態,所以它不會跟蹤整個系統的鍵盤按鍵。 – 2012-04-24 18:00:44

+0

我的意思是,它看起來像你不能從全屏使用他們的鉤子從遠程桌面捕獲鍵盤按鍵。它可能會繞過它們。 – 2012-04-25 08:43:46

+0

它以前不應該工作。 'GetKeyboardState'不能捕獲其他線程組的狀態。 (在沒有附加遊戲的情況下,一個線程組基本上是一個線程。) – 2012-04-25 13:38:32

回答

0

使用鉤子,您將收到keystate任何其他程序之前,你甚至可以取消按鍵。 使用user32.DLL中的「SetWindowsHookExW」來潤溼一個鉤子,使用「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我已經嘗試過你的示例,它也不適用於全屏遠程桌面。 – 2012-04-25 08:42:30

+0

然後你有一個問題,因爲你的全屏遠程桌面可以使用「KeyboardHookProc」功能,這是取消所有擊鍵。我會嘗試使用GetAsyncKeyState,如果它沒有工作,我沒有想法了。 – Tearsdontfalls 2012-04-25 11:19:19

相關問題