Продолжительность события

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Chuvack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 20.01.2005 (Чт) 20:59
Откуда: Россия

Продолжительность события

Сообщение Chuvack » 24.03.2005 (Чт) 8:01

Как измерить сколько времени продолжалось событие?
Нажал на кнопку, потом ещё раз и узнал сколько кнопка была нажата и пауза между нажатием на кнопку.
делал так
Private Declare Function GetTickCount Lib "kernel32" () As Long
Time1 = GetTickCount
Time2 = GetTickCount
Text1.Text = Time2 - Time1
но работает не всегда как надо.
есть ли замена этой функции

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 24.03.2005 (Чт) 8:17

но работает не всегда как надо.

А как?
Замена конешно есть, например:
VBшный Timer , API timeGetTime, ну и самый точный QueryPerformanceCounter
الفيجوال بيسك الرابح

Chuvack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 20.01.2005 (Чт) 20:59
Откуда: Россия

Сообщение Chuvack » 24.03.2005 (Чт) 16:32

Раскажи про QueryPerformanceCounter

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.03.2005 (Чт) 16:42

Chuvack писал(а):Раскажи про QueryPerformanceCounter
Прочитай про QueryPerformanceCounter

Chuvack
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 51
Зарегистрирован: 20.01.2005 (Чт) 20:59
Откуда: Россия

Сообщение Chuvack » 25.03.2005 (Пт) 20:10

там на с, а мне бы пример на VB
раскажите про QueryPerformanceCounter

Qubicz
Обычный пользователь
Обычный пользователь
 
Сообщения: 87
Зарегистрирован: 16.10.2004 (Сб) 20:21
Откуда: Санкт-Петербург

Сообщение Qubicz » 25.03.2005 (Пт) 20:22

Код: Выделить всё
Private Type LARGE_INTEGER
    LowPart As Long
    HighPart As Long
End Type
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 Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Form_Load()
    'KPD-Team 2001
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Dim T As Long, liFrequency As LARGE_INTEGER, liStart As LARGE_INTEGER, liStop As LARGE_INTEGER
    Dim cuFrequency As Currency, cuStart As Currency, cuStop As Currency
    'Retrieve the frequency of the performance counter
    If QueryPerformanceFrequency(liFrequency) = 0 Then
        MsgBox "Your hardware doesn't support a high-resolution performance counter!", vbInformation
    Else
        'convert the large integer to currency
        cuFrequency = LargeIntToCurrency(liFrequency)
        'retrieve tick count
        QueryPerformanceCounter liStart
        'do something
        For T = 0 To 100000
            DoEvents
        Next T
        'retrieve tick count
        QueryPerformanceCounter liStop
        'convert large integers to currency's
        cuStart = LargeIntToCurrency(liStart)
        cuStop = LargeIntToCurrency(liStop)
        'calculate how many seconds passed, and show the result
        MsgBox "Time: " + CStr((cuStop - cuStart) / cuFrequency) + " seconds"
    End If
End Sub
Private Function LargeIntToCurrency(liInput As LARGE_INTEGER) As Currency
    'copy 8 bytes from the large integer to an ampty currency
    CopyMemory LargeIntToCurrency, liInput, LenB(liInput)
    'adjust it
    LargeIntToCurrency = LargeIntToCurrency * 10000
End Function


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

    TopList