Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ловим MessageBox и закрываем, Как енто сделать-то??? 
:(
    Опции темы
lankin
Дата 13.12.2006, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



У мя регулярно выскакивает MessageBox один...неважно почему. Я хочу определить его адрес, когда он появится и закрыть его (глаза бы мои его не видели =)))) Как это мона осуществить БЕЗ ПОМОЩИ ActiveX компонентов? В С++ были FindWindow и SendMessage, а тут чёт я "встал"...Жду ваших ответов.
PM MAIL   Вверх
mr.DUDA
Дата 13.12.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



SendMessage, ну и FindWindow там же. Эту же задачу можно решить через Application.AddMessageFilter со своим фильтром, где проверять на WM_SHOWWINDOW и закрывать если это message box (по тексту, например).


--------------------
user posted image
PM MAIL WWW   Вверх
lankin
Дата 13.12.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Попробую...
PM MAIL   Вверх
lankin
Дата 13.12.2006, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



Чёт нифига не получается через Application. Пишет, что нет такой WM_SHOWWINDOW в его нэймспэйсе(((
PM MAIL   Вверх
DarkDragon
Дата 13.12.2006, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 3
Всего: 8



Ну а в чем проблема(относительно FindWindow и SendMessage)?

1. Где используются пространственные имена (namespace), добавь эту строчку: using System.Runtime.InteropServices;
2. В каком нибудь классе продикларируй:
Код

public static class WinAPI // Например в таком классе
{
   [DllImport("user32.dll")]
   public extern static int SendMessageA (int hWnd, int wMsg, int wParam, int lParam); // также можно поставить IntPtr hWnd

   [DllImport("user32.dll")]
   public extern static int FindWindowA (string lpClassName, string lpWindowName); 
}


Теперь:
WinAPI.SendMessageA (...);
WinAPI.FindWindowA(...);

Теперь используешь эти ф-ции по назначению.
PM MAIL   Вверх
lankin
Дата 14.12.2006, 06:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 377
Регистрация: 13.12.2006

Репутация: нет
Всего: нет



УРАААА!!! Все работает! Создал отдельный поток, в нем закрываю. Вот тока все равно ентот MessageBox успевает моргнуть, подлец)))т.е. показаться и потом закрыться, каиким бы малым я не делал sleep для потока.
mr.DUDA и DarkDragon +1.
PM MAIL   Вверх
mr.DUDA
Дата 14.12.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 24
Всего: 232



P.S. WM_SHOWWINDOW проблему не решит, это я поспешил. Вместо этого можно заюзать windows hook, который ставим на WH_MSGFILTER, ловим по code = 1 (MSGF_MESSAGEBOX) и закрываем messagebox. Примера не даю, т.к. вроде задача уже решена  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0672 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.