|
獲取系統(tǒng)閑置了多久(用戶多久沒有操作)的源碼我們有時需要在系統(tǒng)閑置時,去進行一些操作,如讓系統(tǒng)進行自動備份,讓系統(tǒng)彈出屏幕保護,讓系統(tǒng)播放休息音樂,讓系統(tǒng)自動殺毒 強制自動關機等等。
但如何判斷系統(tǒng)是否處理閑置狀態(tài)呢,一般我們是判斷最近有否輸入或操作。這就需要用到API函數(shù)。完整代碼如下:
窗體函數(shù)代碼:
Option ExplicitPrivate Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean '獲取上一次輸入的相關信息Private Declare Function GetTickCount Lib "kernel32" () As Long' 此函數(shù)的作用是獲得系統(tǒng)運行了多少時間(運行了多久),單位是毫秒'MSDN原文:The GetTickCount function retrieves the number of milliseconds that have elapsed since the system was started. Private Type LASTINPUTINFO cbSize As Long dwTime As LongEnd TypeDim lii As LASTINPUTINFOPrivate Sub Form_Load()Timer1.Interval = 1000 lii.cbSize = Len(lii)' '看API聲明,API里要求這個變量的cbSize保存為這個變量的長度,這樣才可以被API正確操作End SubPrivate Sub Timer1_Timer() '如果是Access中使用,請改為Form_Timer事件,且設置定時器間隔屬性為1000毫秒--Office中國提醒 If GetLastInputInfo(lii) Then If (GetTickCount - lii.dwTime) / 60000 >= 15 Then Shell "shutdown.exe -s -t 180" Call MsgBox("由于本機15分鐘沒有操作,如果3分鐘后沒有反應,系統(tǒng)將強制關機", vbYesNo + vbExclamation + vbDefaultButton2, "提示") End If End IfEnd Sub
|
|