システム時刻をミリ秒単位で取得(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