システム時刻をミリ秒単位で取得(U)          <TOP>


指定したキーの押下時間を測定します。timeGetTimeは、Windowsを起動してから約49日でリセットされます。

GetKeyState 指定された仮想キーコードの状態を取得

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

 

例では、F11キーを押下している間の時間(放したときの時刻 - 押し始め時刻)を取得しています。

 

 

'================================================================
'= キーの押下時間を測定
'=    (timeGetTime2.bas)
'================================================================
#include "Windows.bi"

' 指定された仮想キーコードの状態を取得
Declare Function Api_GetKeyState& Lib "User32" Alias "GetKeyState" (ByVal nVirtKey&)

' システムが起動してからの起動時間を取得
Declare Function Api_timeGetTime& Lib "winmm" Alias "timeGetTime" ()

Var Shared Text1 As Object
Var Shared Timer1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Timer1.Attach GetDlgItem("Timer1")

'================================================================
'=
'================================================================
Declare Sub Mainform_Start edecl ()
Sub Mainform_Start()
    Timer1.SetInterval 10
    Timer1.Enable -1
End Sub

'================================================================
'=
'================================================================
Declare Sub Timer1_Timer edecl ()
Sub Timer1_Timer()
    static timeFlag As byte
    static startTime As Long
    static EndTime As Long

    If (Api_GetKeyState(&H7A) < 0) Then 'F11
        If timeFlag = 0 Then
            startTime = Api_timeGetTime
        End If
        timeFlag = 1
    Else
        If timeFlag Then
            EndTime = Api_timeGetTime
            Text1.SetWindowText "F11押下時間:" & Str$(EndTime - startTime) & " mSec"
        End If
        timeFlag = 0
    End If
End Sub

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