Как программно нажать ОК на MsgBox?

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

Как программно нажать ОК на MsgBox?

Сообщение Osteon » 08.04.2013 (Пн) 14:38

Здравствуйте.
Сильно хочу, чтобы MsgBox держалась 1 секунду для информирования пользователя, затем "уходила", как при нажатии клавиши "OK". Что-то типа

Код: Выделить всё
MsgBox "Информирование", vbOKOnly, "Информирование"
Sleep 1000
SendKeys vbKeyReturn


Такой код, естественно, на прокатывает, т.к. MsgBox сначала ожидает "ОК". А как сделать - не дотумкиваю... :cry:

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 08.04.2013 (Пн) 16:23

Osteon писал(а):Такой код, естественно, на прокатывает, т.к. MsgBox сначала ожидает "ОК".

Ну да, надо делать из другого потока или процесса.
Либо, MsgBox не должен принадлежать данной форме, т. е. вызвать MessageBox с хендлом 0. Но тогда он не будет модальным.

Osteon писал(а):SendKeys vbKeyReturn

А ты уверен, что пользователь будет именно в твоём приложении? Надо делать SendMessage(boxhandle, WM_COMMAND, IDOK, 0)

Osteon писал(а):Сильно хочу, чтобы MsgBox держалась 1 секунду для информирования пользователя, затем "уходила", как при нажатии клавиши "OK".

А ещё можно самому сделать форму вместо MsgBox.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как программно нажать ОК на MsgBox?

Сообщение Хакер » 08.04.2013 (Пн) 17:32

Qwertiy писал(а):Либо, MsgBox не должен принадлежать данной форме, т. е. вызвать MessageBox с хендлом 0. Но тогда он не будет модальным.

Это не поможет, возврат всё равно не произойдёт раньше реакции на диалог.

Как вариант: search.php?st=0&sk=t&sd=d&sr=posts&keywords=MessageBoxTimeout
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Как программно нажать ОК на MsgBox?

Сообщение Osteon » 12.04.2013 (Пт) 14:31

Извините, долго не был, уезжал...
Qwertiy писал(а):Надо делать SendMessage(boxhandle, WM_COMMAND, IDOK, 0)

Вот этого ой как не люблю я... Муторно, на мой взгляд. Может быть, просто лень... :oops:
Хакер писал(а):Как вариант: search.php?st=0&sk=t&sd=d&sr=posts&keywords=MessageBoxTimeout

Интересная штука. Щас буду юзать. Спасибо за подсказку. :D
Qwertiy писал(а):А ещё можно самому сделать форму вместо MsgBox.

Пожалуй, это будет самый простой вариант, если не поможет "Хакер"ская подсказка.

Osteon
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 17.01.2013 (Чт) 5:53

Re: Как программно нажать ОК на MsgBox?

Сообщение Osteon » 12.04.2013 (Пт) 15:38

Хакер писал(а):Как вариант: search.php?st=0&sk=t&sd=d&sr=posts&keywords=MessageBoxTimeout

Спасибо преагроменное!!! Это как раз то, что мне было нужно!!! :lol: :thumleft:


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

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

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

    TopList