Борьба с Message Box

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

Борьба с Message Box

Сообщение Vitaliy » 25.06.2003 (Ср) 14:06

Помогите, пожалуйста!
Закрываю запущенное приложение (с помощью функции SendMessage), но по закрытию выскакивает сообщение для подтверждения выхода (судя по всему, message box). Как программно его закрыть? Есть АПИ-функция для закрытия этого окна, но код в моей программе не выполняется, пока не будет нажата кнопка подтверждения выхода.
Что мне делать?
Или хотя бы, на крайний случай, как узнать, какая кнопка была нажата (ДА или НЕТ), чтобы можно было построить дальнейшую обработку. :?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Re: Борьба с Message Box

Сообщение ALX_2002 » 25.06.2003 (Ср) 14:12

Vitaliy писал(а):Помогите, пожалуйста!
Закрываю запущенное приложение (с помощью функции SendMessage), но по закрытию выскакивает сообщение для подтверждения выхода (судя по всему, message box). Как программно его закрыть? Есть АПИ-функция для закрытия этого окна, но код в моей программе не выполняется, пока не будет нажата кнопка подтверждения выхода.
Что мне делать?
Или хотя бы, на крайний случай, как узнать, какая кнопка была нажата (ДА или НЕТ), чтобы можно было построить дальнейшую обработку. :?


Хм..., а может стоит попробывать поюзать

Private Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Эта штучка убивает на повал :wink: и без вопросов

Vitaliy
Новичок
Новичок
 
Сообщения: 26
Зарегистрирован: 14.05.2003 (Ср) 13:35

Сообщение Vitaliy » 25.06.2003 (Ср) 14:35

Пробовал, действительно убивает. Но...
Эта прога сидит в трее, и после её "убития" там остается иконка. Если еще раз запустить приложение, получается две и т.д. Если навести курсор мыши, то она исчезает. Я уже обращался по этому поводу сюда на форум, но так ничего и не получилось :(

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 25.06.2003 (Ср) 15:03

Один из возможных способов уничтожения иконки в трее, это получение hWnd окна, которое поместило иконку в трей (обычно main window) и отсылка Shell_NotifyIcon NIM_DELETE, nid от имени этого окна.
Если этот способ сложен, или не удаётся определить, какое окно поместило иконку в трей, тогда второй способ. После убийства приложения, программа убийца должна поместить свою иконку в трей и удалить её, трей перерисуется и всё в шоколаде.
Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com

iolaus
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 19.03.2002 (Вт) 18:33
Откуда: Москва

Сообщение iolaus » 25.06.2003 (Ср) 15:11

response = MsgBox("aaa", vbYesNo + vbQuestion + vbDefaultButton1, "bbb")
If response = vbYes Then
This message will self destruct in five seconds!!!

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 25.06.2003 (Ср) 15:15

???
Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.06.2003 (Ср) 15:51

Посылай SendKeys "{ENTER}" после того, как отправишь Window-сообщение окну на закрытие. А само сообщение отправляй не через SendMessage, а через PostMessage.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение Sebas » 25.06.2003 (Ср) 16:05

А может рекурсивно послать во все дочернии окна начиная с верхнего?

2MEMBER : Ты точно уверен что удалиться? в 98 на моей памяти такого не было....
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 25.06.2003 (Ср) 16:22

100 percent. Я в своё время много зубов сточил об этот трей. :)
Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com


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

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

Сейчас этот форум просматривают: AhrefsBot и гости: 47

    TopList