アイドル時間を取得 <TOP>
アイドル時間を取得します。
GetTickCount システムが起動してからの経過時間を取得
GetLastInputInfo 最後に発生した入力イベントの時刻を取得
例では、カーソルの動きを関知して時間をリセットしています。
'================================================================ '= アイドル時間を取得
'= (GetLastInputInfo.bas)
'================================================================ #include "Windows.bi" Type LASTINPUTINFO cbSize As Long dwTime As Long End Type ' システムが起動してからの経過時間を取得 Declare Function Api_GetTickCount& Lib "Kernel32" Alias "GetTickCount" () ' 最後に発生した入力イベントの時刻を取得 Declare Function Api_GetLastInputInfo& Lib "user32" Alias "GetLastInputInfo" (plii As Any) Var Shared Timer1 As Object Var Shared Text1 As Object Var Shared Button1 As Object Timer1.Attach GetDlgItem("Timer1") Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared Flg As Integer '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Timer1.SetInterval 10 Timer1.Enable -1 Text1.SetWindowText "アイドル時間(秒)" Button1.SetWindowText "Stop" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Flg = Not Flg Timer1.Enable Flg Select Case Flg Case -1 Button1.SetWindowText "Stop" Case 0 Button1.SetWindowText "Start" End Select End Sub '================================================================ '= '================================================================ Declare Sub Timer1_Timer edecl () Sub Timer1_Timer() Var lii As LASTINPUTINFO Var Ret As Long lii.cbSize = Len(lii) Ret = Api_GetLastInputInfo(lii) Text1.SetWindowText "アイドル時間(秒)" & Chr$(13, 10) & Str$((Api_GetTickCount() - lii.dwTime) / 1000) End Sub '================================================================ '= '================================================================ Declare Sub MainForm_QueryClose edecl () Sub MainForm_QueryClose() Timer1.Enable 0 End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End