![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
lankin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 377 Регистрация: 13.12.2006 Репутация: нет Всего: нет |
У мя регулярно выскакивает MessageBox один...неважно почему. Я хочу определить его адрес, когда он появится и закрыть его (глаза бы мои его не видели =)))) Как это мона осуществить БЕЗ ПОМОЩИ ActiveX компонентов? В С++ были FindWindow и SendMessage, а тут чёт я "встал"...Жду ваших ответов.
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
SendMessage, ну и FindWindow там же. Эту же задачу можно решить через Application.AddMessageFilter со своим фильтром, где проверять на WM_SHOWWINDOW и закрывать если это message box (по тексту, например).
-------------------- ![]() |
|||
|
||||
lankin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 377 Регистрация: 13.12.2006 Репутация: нет Всего: нет |
Попробую...
|
|||
|
||||
lankin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 377 Регистрация: 13.12.2006 Репутация: нет Всего: нет |
Чёт нифига не получается через Application. Пишет, что нет такой WM_SHOWWINDOW в его нэймспэйсе(((
|
|||
|
||||
DarkDragon |
|
|||
![]() GradVin ![]() ![]() Профиль Группа: Участник Сообщений: 296 Регистрация: 19.8.2006 Репутация: 3 Всего: 8 |
Ну а в чем проблема(относительно FindWindow и SendMessage)?
1. Где используются пространственные имена (namespace), добавь эту строчку: using System.Runtime.InteropServices; 2. В каком нибудь классе продикларируй:
Теперь: WinAPI.SendMessageA (...); WinAPI.FindWindowA(...); Теперь используешь эти ф-ции по назначению. |
|||
|
||||
lankin |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 377 Регистрация: 13.12.2006 Репутация: нет Всего: нет |
УРАААА!!! Все работает! Создал отдельный поток, в нем закрываю. Вот тока все равно ентот MessageBox успевает моргнуть, подлец)))т.е. показаться и потом закрыться, каиким бы малым я не делал sleep для потока.
mr.DUDA и DarkDragon +1. |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
P.S. WM_SHOWWINDOW проблему не решит, это я поспешил. Вместо этого можно заюзать windows hook, который ставим на WH_MSGFILTER, ловим по code = 1 (MSGF_MESSAGEBOX) и закрываем messagebox. Примера не даю, т.к. вроде задача уже решена
![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |