Программирование на 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

-
-
- Сообщения: 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
-
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
Кто сейчас на конференции
Сейчас этот форум просматривают: Alex B. Fox, Google-бот, Yandex-бот и гости: 10