2009-09-18 52 views
4

一般而言,屏幕保護程序將在我們一段時間內什麼都不做時運行。
現在我想知道如何獲得無效的時間。
換句話說,如果我們在一段時間內什麼都不做,我想製作一個程序來運行一個函數。
現在我可以使用鼠標或鍵盤鉤來解決問題。
但是你知道,它需要管理員權限。換句話說,如果在win vista或者win 7中,那是因爲UAC而令人噁心的。
我需要一個API來獲取最後一個窗口的活動時間。如何通過windows api獲取最後一個窗口的活動時間

回答

4

CallNtPowerInformation() API是爲了獲得最後的電力信息
我應該使用GetLastInputInfo()

+0

GetLastInputInfo()不會爲您提供系統範圍的空閒時間,以便Windows閒置時或屏幕保護程序啓動。它僅爲您提供正在運行的進程的空閒時間。 CallNtPowerInformation()爲您提供系統空閒時間。 – 2009-09-18 05:06:25

+0

@JohnDeters文檔聲明瞭一些不同的內容:「GetLastInputInfo僅爲調用該函數的會話提供會話特定的用戶輸入信息。」我會將會話解釋爲「用戶會話」,即RDS會話。 – 2018-02-05 22:24:45

2

調查CallNtPowerInformation()並請求一個SYSTEM_POWER_INFORMATION結構。

+0

的SYSTEM_POWER_INFORMATION結構「包含了系統的空閒信息。」 TimeRemaining是「空閒計時器中的剩餘時間,以秒爲單位」。懶惰是以百分比表示的數字。 typedef struct _SYSTEM_POWER_INFORMATION { ULONG MaxIdlenessAllowed; ULONG懶惰; ULONG TimeRemaining; UCHAR CoolingMode; } SYSTEM_POWER_INFORMATION,* PSYSTEM_POWER_INFORMATION; – 2009-09-18 03:15:28

相關問題