У меня возникла проблема с таймером.
Мой предыдущий таймер окозался пакостью для CPU загружая его без совести и жалости.
Вот этот код.
- Код: Выделить всё
Public Declare Function GetTickCount Lib "kernel32" () As Long
Do
DoEvents
If GetTickCount() - LstTim >= Interval Then
LstTim = GetTickCount
Call tim ' вызываю sub tim() с кодом выполнения
End If
Loop
Но я вынужден отказатся от его применения
Но к сожелению с Айпи шным таймером у меня проблемы
Мне не удаётся его привязать к чему быто ни было. Тоесть я не могу определить для него хэндл. Так как в моём проекте не имеется формы ( окна ) Но а если я следую следующим образом, то переменная по которой передаётся данный хэндл таймера обнуляется по неизвестной причине. Переменная, что получает так называемый хэндл изначально hTimer. Если проверить изначально, то она действительно имеет адрес хэдла таймера.
вот код
- Код: Выделить всё
Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
Dim stop1 As Long
Dim hTimer As String
Function TimerProc(hWnd As Long, nIDEvent As Long, uElapse As Long, lpTimerFunc As Long)
MsgBox hTimer ' уже здесь переменная пуста
If stop1 > 5 Then
KillTimer w, 0&
MsgBox "stop timer"
End If
stop1 = stop1 + 1
End Function
Sub main()
hTimer = SetTimer(0&, 0&, 2000, AddressOf TimerProc)
End Sub
Помогите если можете. Есть ли альтернатива этому таймеру или же подскажите как избежать потери данных в переменной. Проект основан на одном модуле, и двух классах. При этом в конце я копилирую DLL. Тоестья просто создаю DLL.
Спасибо