Страница: 1 |
Страница: 1 |
Вопрос: DoEvents
Добавлено: 01.09.07 07:16
Автор вопроса: Сергей
В своей программе я использую SendKeys для управления сторонней программой, но иногда та как бы "не успевает" обработать все нажатия, видимо слишком быстро идет отсылка клавиш. Попробовал после каждого нажатия вставлять пустой цикл, иногда помогает, иногда нет. Нашел мало понятное описание DoEvents, подскажите пожалуйста, поможет ли это мне в данном случае или нужно что-то другое пользовать ?
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
intel-DX
ICQ: 445091742
Вопросов: 4
Ответов: 169
Профиль | | #1
Добавлено: 01.09.07 08:57
DoEvents Тут не поможет. Попробуй заменить свои цикл на мою процедуру:
Private Declare Function GetTickCount Lib "kernel32" () as Long
'***
Private Sub zad(TimeCount as Long)
Dim ms as Long
ms= GetTickCount
Do While Not (GetTickCount -ms) > TimeCount
Loop
End Sub
Номер ответа: 2
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #2
Добавлено: 01.09.07 16:11
DoEvents сам по чебе мало чем поможет. Он просто заставляет твое приложение уступить на некоторое время (отдохнуть)
Чтобы вставить паузу в приложение, нужно сделать что-то вроде:
t = Timer + 2
Do Until t <= Timer
DoEvents
Loop
Номер ответа: 3
Автор ответа:
Сергей
Вопросов: 9
Ответов: 18
Профиль | | #3
Добавлено: 01.09.07 16:22
Спасибо, сейчас попробую. Код предложеный intel-DX вешает все напрочь.
Номер ответа: 4
Автор ответа:
ENIX
ICQ: 238819245
Вопросов: 9
Ответов: 76
Профиль | | #4
Добавлено: 01.09.07 20:24
Вешает потому-что пропущено "oEvents"
Номер ответа: 5
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 01.09.07 22:26
Member of VBA.Interaction
Выдает выполнение так, чтобы операционная система могла обрабатывать другие события
А в том цикле система другие события обработать не могёт))