Здраствуйте. Необходимо написать программу которая перезагружала бы компъютер при возникновении ошибок в работе другой программы. Подскажите пожалуйста от каких параметров отталкиваться при написании. Спасибо.
allex7 Задача слишком расплывчата. Если под программой понимать два процесса, то создать именованный эвент в первом процессе и ждать его во втором процессе. Если первый процесс запускает второй то эвент может быть не именованным, просто скопировать хэндл его в запускаемый процесс. Или можно использовать дебугапи для отлова фильтрации исключений в другом процессе. Можно создать разделяемую память и совместно её юзоть.. Если понимать под программами два потока, то установить глобальный диспетчер исключений, в простейшем случае VEH и там исполнять обработку. Сам ребут исполняется через NtShutdownSystem. Можно также пометить поток/процесс как критический и при их завершении система остановится(бсод).
Все проще. Программа за которой происходит слежение - Outpost (на шлюзе) -иногда выдает сообщение об ошибке. И хотя в трее остается иконка, в инет никто не достучится уже. Программа слежения отправляет в EAX 0 если оутпост в порядке. далее ExitProcess, eax. Потом в скрипте cmd: Program if %errorlevel% neq 0 shutdown -r
я не писал еще программу, которая взаимодействовала бы с другой программой. По каким параметрам следить работает ли оутпост или завис?
Outpost - это не одна программа, а целый комплекс - драйверы, сервисы и т.д. Непонятно за чем следить. Проще пинговать сеть периодически. Ну и, само собой, написать разработчикам о проблеме.