2016-10-31 57 views
0

我有一個問題,我需要爲下一個問題的方法:檢測現有閒置的應用程序

比方說有一個應用程序「A」。此應用程序「A」只能在您擁有許可證的情況下使用。如果許可證是免費的,有幾個用戶使用這個應用程序併爲他們「保留」許可證。但是,有時候「保留」許可證的用戶忘記了「無保留」。

主要問題:如何檢測用戶是否在X分鐘內未使用應用程序(應用程序處於空閒狀態)? 這並不意味着用戶在計算機上不活躍 - 他正在計算機上使用其他應用程序,但他不使用此特定應用程序「A」。 (用戶必須登錄才能使用許可證,這意味着即使他退出應用程序,最小化應用程序,或者只是應用程序在其他應用程序的後臺,他仍然會提供許可證)

我閱讀GetLastInputInfo,但我不相信它會幫助我處理我的情況。我想要的只是獲取用戶是否與應用程序交互的信息。

我正在使用C++。 操作系統:Windows 10 x64bit。

+0

這是Windows 10,我剛更新了這篇文章。感謝您的建議。 – Alek

回答

0

你的應用程序如何將輸入隊列和篩選器掛接到你認爲適用於正在使用的應用程序(可能是keyup/down/mousemove可能不是WM_TIMER或WM_PAINT)的消息上,然後當你認爲它足夠長時間您收到了其中一條消息(每次收到其中一條所選消息時都會設置一個計時器),這就是您釋放許可證密鑰的時間。

+0

我非常希望有另一種方式。我從來沒有做過這種掛鉤的事情,所以我會很感激,如果你建議我從哪裏可以閱讀更多關於鉤子,消息,回調,事件等的文獻。 – Alek