Показать сообщение отдельно
Старый 05.04.2005, 14:15   #1  
db is offline
db
Роман Долгополов (RDOL)
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
 
393 / 692 (24) +++++++
Регистрация: 01.04.2004
Адрес: Москва
Пакетный сервер как сервис WIndows
Хочу запустить сервер пакетной обработки как сервис Windows, чтобы запускался вместе с железякой, не требовал входа в систему, перезапускался если упадет, писал в лог системы и прочие прелести сервисов.

На первый взгляд никаких проблем нет - все запускается и прекрасно работает.
Проблема проявляется чуть позже - надо избавляться от модальных диалоговых окон, иначе даже если все навернулось, то Windows не может перезапустить сервис, так как думает, что тот прекрасно работает, просто вывесив диалоговое окно.

Беда в том, что указание в конфигурационной утилите INTERNAL=NOMODALDOXES, вырубает не все диалоговые окна, а только созданные из X++. Может случиться ситуация, когда по причине какой нибудь ошибки (например разорвалась связь с СУБД) будет вывешен стандартный WinAPI MessageBox, и перезапуска сервиса будем ждать вечно.

Отключение взаимодействия сервиса с десктопом не поможет, да и не хотелось бы этого делать

Так вот вопрос - знает ли кто нибудь способ отрубить MessageBox для конкретной программы, кроме как загрузка dll с хуком на эту функцию ? Проблем написать такую штуку никаких, но может есть другие способы?