Пакетный сервер как сервис WIndows
Хочу запустить сервер пакетной обработки как сервис Windows, чтобы запускался вместе с железякой, не требовал входа в систему, перезапускался если упадет, писал в лог системы и прочие прелести сервисов.
На первый взгляд никаких проблем нет - все запускается и прекрасно работает.
Проблема проявляется чуть позже - надо избавляться от модальных диалоговых окон, иначе даже если все навернулось, то Windows не может перезапустить сервис, так как думает, что тот прекрасно работает, просто вывесив диалоговое окно.
Беда в том, что указание в конфигурационной утилите INTERNAL=NOMODALDOXES, вырубает не все диалоговые окна, а только созданные из X++. Может случиться ситуация, когда по причине какой нибудь ошибки (например разорвалась связь с СУБД) будет вывешен стандартный WinAPI MessageBox, и перезапуска сервиса будем ждать вечно.
Отключение взаимодействия сервиса с десктопом не поможет, да и не хотелось бы этого делать
Так вот вопрос - знает ли кто нибудь способ отрубить MessageBox для конкретной программы, кроме как загрузка dll с хуком на эту функцию ? Проблем написать такую штуку никаких, но может есть другие способы?
|