Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
3-48850
volph7777
2002-12-23 16:20
2003.01.16
почему SQL-запрос по разному выполняется


1-49084
FoXx
2003-01-05 02:28
2003.01.16
}{ Flash }{


1-49035
Ruslan_
2003-01-07 23:02
2003.01.16
Форма


6-49177
BackStabber
2002-11-17 16:52
2003.01.16
Взаимодействие с сервером по TCP/IP


4-49366
Cosmic
2002-11-30 13:22
2003.01.16
ADO & API





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский