掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
自作timerを作成するには? (ID:86479)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
QueryPerformanceCounterとQueryPerformanceFrequencyを使用してVB6でやると 「LARGE_INTEGER」の変換が入りますが、 Option Explicit Private Type LARGE_INTEGER lowpart As Long ' lower 32-bit value highpart As Long ' higher 32-bit value End Type Dim Freq As LARGE_INTEGER Dim Interval As Long, CountTime As Long Private Declare Function QueryPerformanceCounter Lib "kernel32" _ (lpPerformanceCount As LARGE_INTEGER) As Long Private Declare Function QueryPerformanceFrequency Lib "kernel32" _ (lpFrequency As LARGE_INTEGER) As Long Private Sub Command1_Click() Interval = 10 'タイマー mSecで設定 QueryPerformanceFrequency Freq DoEvents Timer1 End Sub Private Sub Timer1() Dim Ctr1 As LARGE_INTEGER, Ctr2 As LARGE_INTEGER Do QueryPerformanceCounter Ctr2 If Abs(LItoDouble(Ctr2) - LItoDouble(Ctr1)) / LItoDouble(Freq) >= Interval / 1000 Then QueryPerformanceCounter Ctr1 '処理を書く CountTime = CountTime + 1 Me.Caption = CountTime DoEvents End If Loop End Sub Private Function LItoDouble(Val As LARGE_INTEGER) As Double Dim Low As Double, High As Double Low = Val.lowpart High = Val.highpart If Low < 0 Then Low = 4294967296# + Low + 1 If High < 0 Then High = 4294967296# + High + 1 LItoDouble = Low + High * 4294967296# End Function こんなかんじかな。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.