Как лучше всего следить за настольным приложением?

Мне нужен какой-то способ отслеживать настольное приложение и перезапускать его, если оно умирает.

Первоначально я предполагал, что лучшим способом будет отслеживать/перезапускать процесс из службы Windows, пока не обнаружил, что начиная с Vista службы Windows не должны взаимодействовать с рабочим столом

. Я видел несколько вопросов, касающихся этой проблемы, но каждый ответ, который я видел, касался какого-то взлома, который не одобряется Microsoft и, вероятно, перестанет работать в будущих обновлениях ОС.

Таким образом, служба Windows, вероятно, больше не вариант. Я мог бы, вероятно, просто создать другое настольное/консольное приложение для этого, но это противоречит его цели.

Какой, на ваш взгляд, самый элегантный способ добиться этого?

РЕДАКТИРОВАТЬ:Это не вредоносное ПО и не вирус.Приложение, требующее мониторинга, представляет собой медиаплеер, который будет работать во встроенной системе, и хотя я пытаюсь охватить все возможные сценарии сбоя, я не могу рисковать его сбоем из-за непредвиденной ошибки (s **не бывает ). Этот сторожевой таймер будет просто защитой на случай, если все остальное пойдет не так. Кроме того, поскольку проигрыватель будет отображать флэш-контент сторонних производителей, дополнительным плюсом будет, например, мониторинг использования ресурсов и перезапуск проигрывателя, если, скажем, какой-то дрянной флэш-фильм начинает утечку памяти.

РЕДАКТИРОВАТЬ 2 :Я забыл упомянуть, что приложение, которое я хотел бы отслеживать/перезапускать, абсолютно не нужно запускать ни с учетной записью LocalSystem, ни с какими-либо административными привилегиями. На самом деле, я бы предпочел, чтобы он запускался с использованием текущих учетных данных зарегистрированного пользователя.

25
задан Axel Magagnini 22 June 2012 в 15:21
поделиться