Таймер в процессе без форм

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

Таймер в процессе без форм

Сообщение Qubicz » 25.03.2005 (Пт) 3:27

Нужно в проекте без форм с модулем впихнуть таймер для последующего опроса клавиатуры. пробовал CreateTimerQueueTimer из ApiGuide, проект выполняется в момент и благополучно завершается, хотя таймер создан... Можно конечно Do и Loop, но грузит процессор даже с DoEvents.
Что можете посоветовать, чтобы решить эту проблему?

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 25.03.2005 (Пт) 6:50

Предварительно TimerQueue создавал?
Листинги не горят!

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

Сообщение Qubicz » 25.03.2005 (Пт) 13:34

Нет, я создание таймера в main запихнул...
А предварительно это как?(ссылку, пример)

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 25.03.2005 (Пт) 17:35

а нельзя создать класс, в котором :

Dim WithEvents T as timer

?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Q2W
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 745
Зарегистрирован: 31.01.2004 (Сб) 20:46
Откуда: Питер

Сообщение Q2W » 25.03.2005 (Пт) 17:38

Видел где-то таймер как раз для таких целей, пошарься по этому сайтику - вроде это здесь.
Я знаю верный путь

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

Сообщение Qubicz » 25.03.2005 (Пт) 17:52

Спасибо за помощь буду разбираться и искать

Faust
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 649
Зарегистрирован: 29.12.2003 (Пн) 13:38
Откуда: лаборатория

Сообщение Faust » 26.03.2005 (Сб) 6:51

Где-то так попробуй:
Код: Выделить всё

Private Declare Function CreateTimerQueue Lib "kernel32.dll" () As Long
Private Declare Function CreateTimerQueueTimer Lib "kernel32.dll" (ByRef phNewTimer As Long, ByVal TimerQueue As Long, ByVal Callback As Long, ByVal Parameter As Long, ByVal DueTime As Long, ByVal Period As Long, ByVal Flags As Long) As Long
Private Declare Function DeleteTimerQueue Lib "kernel32.dll" (ByVal TimerQueue As Long) As Long
Private Declare Function DeleteTimerQueueTimer Lib "kernel32.dll" (ByVal TimerQueue As Long, ByVal Timer As Long, ByVal CompletionEvent As Long) As Long

Private C As Byte

Sub Main()
Private pQ As Long, pT As Long
pQ=CreateTimerQueue()
CreateTimerQueueTimer pT, pQ, AddressOf TimerProc, 0&, 0, 1000, 0
C=60
While C>0
DoEvents
Wend
Debug.Print "BOOM!"
DeleteTimerQueueTimer pQ, pT, 0&
DeleteTimerQueue pQ
EndSub
Public Sub TimerProc()
Debug.Print Counter & " seconds to explode..."
C=C-1
End Sub
Листинги не горят!


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

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

Сейчас этот форум просматривают: Google-бот и гости: 42

    TopList