2011-08-23 73 views
2

我有一個應用程序駐留在托盤中,我需要檢測用戶活動,以便我可以執行某些任務。對於Windows,我知道我可以使用GetAsyncKeyState或SetWindowsHookEx,但我想有一個跨平臺的解決方案。當應用程序沒有焦點時檢測按鍵

有沒有人有解決方案?也許重新實現keyPressEvent?或者,設置一些宏並單獨執行會更容易嗎?

+1

你不能這樣做,當你沒有關注,在Windows鍵盤掛鉤是唯一的解決方案,在其他平臺上,我不知道。 – ismail

回答

2

這本質上是平臺特定的。

我會確保隔離你做的任何事情,並分開捕獲事件的機制和記錄這些擊鍵消耗的擊鍵。這樣你只需要在每個平臺上實現捕獲/記錄機制,其他所有代碼都應該非常便攜。

您可能想看看SDL在這裏做了什麼。 http://www.libsdl.org/

他們已經成功地將所有這類事情抽象出來,而不僅僅是鍵盤。

+0

是的,我想我要隔離代碼並使用像Q_WS_WIN這樣的Qt特定的宏。謝謝,這有幫助。 – Tenza

相關問題