経過時間を取得          <TOP>


GetTickCount システムが起動してからの経過時間を取得
 

 

参考

GetTickCount関数は、Windowsが起動されてから約49.7日間継続すると「0」に戻る。

また、Long型で扱うため約25日経過すると値がマイナス値になるので、値の大小を比較する必要があります。

 

'================================================================
'= 経過時間を取得
'=    (GetTickCount.bas)
'================================================================
#include "Windows.bi"

' システムが起動してからの経過時間を取得
Declare Function Api_GetTickCount& Lib "Kernel32" Alias "GetTickCount" ()

Var Shared Text(1) As Object
Var Shared Button(1) As Object

For i = 0 To 1
    Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14
    Button(i).Attach GetDlgItem("Button" & Trim$(Str$(i + 1))) : Button(i).SetFontSize 14
Next i

Var Shared Count As Long

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Text(1).SetWindowText "カウント中!"

    Count = Api_GetTickCount()
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Count2 As Long

    Count2 = Api_GetTickCount()
    
    '通常
    If Count2 > Count Then
        Text(1).SetWindowText Str$((Count2 - Count) / 1000) & "秒"    
    '25日間を超えた場合
    Else
        Text(1).SetWindowText Str$((Count - Count2) / 1000) & "秒"
    End If
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End