Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.16;
Скачать: CL | DM;

Вниз

Перехват и обработка системных сообщений   Найти похожие ветки 

 
Stranger ©   (2002-11-04 10:20) [0]

Ситуация следующая:
Программа во время своей работы вызывает внешнее консольное приложение с параметрами, причем выполняется это приложение в отдельном потоке,
вопрос в следующем: если консольное приложение вызовет системное сообщение "Программа выполнила недопустимую операцию и будет закрыта", можно ли из моей программы обработать это сообщение таким образом, что бы без вмешательства пользователя продолжить выполнение программы (основной, не консольника), то есть что бы не было необходимости нажимать кнопку Ok.


 
Song ©   (2002-11-04 10:53) [1]

Можно но мудорно.


 
Stranger ©   (2002-11-04 13:10) [2]

> Song
А как если не секрет или хотя бы ссылку на ресурс, где об этом можно почитать


 
Song ©   (2002-11-04 14:04) [3]

Надо хук ставить на окошко с ошибкой. Хук ставится в момент запуска приложения, а срабатывает при появлении ошибки. Потом:

или

После того как хук сработает окно с ошибкой будет верхнее по Z-порядку. Поэтому Вы можете получить дескриптор окна через GetForeGroundWindow, а дискриптор кнопки через FindWindowEx(). Определив дискриптор кнопки послать ей BM_CLICK, что и приведёт к её нажатию.

или

использовать mouse_event()

Недостатком последнего способа может явится то, что пользователь может также управлять мышью в данный момент, поэтому придётся её отключать, что доступно в этой ситуации только для w9x (для NT тоже можно, но нужно ставить новый хук). Ну и т.д. т.е. видите, что проблемы будут расти как снежный ком.


 
IronWit ©   (2002-11-04 16:47) [4]

Song

ты не мог бы написать пример кода посылки сообщения нажатия клавиши мышки?


 
Song ©   (2002-11-05 08:52) [5]

SendMessage(ButHandle,BM_CLICK,0,0)


 
Stranger ©   (2002-11-05 13:35) [6]

>Song
Спасибо попробую, в общем принцип понятен



Страницы: 1 вся ветка

Текущий архив: 2003.01.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
6-49185
Captain
2002-11-10 12:55
2003.01.16
Обновляемый список компьютеров в сети


1-48989
boby_g
2003-01-06 22:19
2003.01.16
Я надо минимизировать вси другие приложения...


1-49009
Щькодер
2003-01-07 08:34
2003.01.16
Подскажите плиз самый оптимальный алгоритм часов.


1-48983
Kromag
2003-01-06 18:56
2003.01.16
Генерация


4-49361
DIV
2002-11-28 08:44
2003.01.16
Поток. Выскакивает сообщение A Win32 API functuion failed