2012-07-27 57 views
0

在我的WPF應用程序中,我必須檢測系統空閒時間(包括不使用鼠標,鍵盤,操縱桿)。WPF應用程序找到系統空閒時間 - GetLastInputInfo不識別遊戲杆

我用GetLastInputInfo來獲得系統的空閒時間,但是我發現它只能用於鼠標或鍵盤的輸入,而不能用於操縱桿。

有沒有一種方法或任何Win32 API可以通過檢測來自所有三種設備(鼠標,鍵盤,操縱桿)的輸入來給出LastInputInfo?

+0

GetLastInputInfo已經一個好的開始,但對於操縱桿,我很確定它沒有覆蓋winapi。或者即使是這樣,它也可能無法容納通過直接輸入,xinput和類似庫獲得的遊戲杆。鍵盤和鼠標緊緊地集成在win api中,而操縱桿則不是。 – dowhilefor 2012-07-28 19:19:25

回答

0

您可以註冊以接收RAW輸入消息。下面的示例要求從遊戲杆輸入原始數據,但如果您想要的話,您也可以從小鼠和鍵盤請求原始輸入...或者您可以堅持使用GetLastInputInfo來處理這些情況。

如果您想在即使應用程序不在前臺時收到事件,也可以在dwFlags上使用RIDEV_INPUTSINK。

下面的鏈接中應該有足夠的內容來做你想做的事情......從每個參考文獻中取出零碎。

然後,你需要定義一個回調來接收Windows消息,然後尋找任何WM_INPUT。

我不認爲你必須使用一個系統掛鉤,但有這麼提到,這裏的鏈接: