windows判斷用戶是否在使用鍵盤鼠標的API

剛剛看《編程之美》1.10節,其中提了一個問題:windows是通過什麼api瞭解用戶是否在使用鼠標或鍵盤的?

有兩個函數可以實現這個功能,它們都包含在頭文件windows.h中。


1. BOOL GetInputState(VOID);
函數功能:該函數確定在當前線程的消息隊列中是否有要處理的鼠標,鍵盤消息.如果檢測到輸入的話,則返回值爲非零值,否則返回值爲零

2.BOOL WINAPI GetLastInputInfo( __out PLASTINPUTINFO lpi);

函數功能:獲取上次輸入操作的時間


參數:[out] 類型:PLASTINPUTINFO結構是一個指向接收到最後一個輸入事件時間的LASTINPUTINFO結構指針。

返回值:如果調用函數成功,返回值爲非零。如果調用函數失敗,返回值爲零。


說明:先定義
LASTINPUTINFO lpi;然後調用函數GetLastInputInfo(&lpi);獲得lpi調用函數GetLastInputInfo()以後, 結構成員lpi.dwTime 中的值並非上次輸入事件發生以後的毫秒數。而是上次輸入事件發生時的系統運行時間。相當於上次輸入事件發生時執行了lpi.dwTime=::GetTickCount()。爲獲得上次輸入事件發生以後的毫秒數需要執行語句::GetTickCount()-lpi.dwTime。


發佈了23 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章