Предотвратить принудительное уничтожение процесса подачи заявки - PullRequest
0 голосов
/ 01 марта 2012

У меня очень важный процесс, который будет запускаться в фоновом режиме в моем приложении winform.

Как я могу запретить пользователю завершить процесс приложения winform?

Я хочу запретить пользователю:

  • завершить процесс из Диспетчер задач
  • завершить работу компьютера до завершения процесса моего приложения
  • любой другой программный метод для уничтожения процесса (конечно, я не могу помешать пользователю нажать кнопку питания своего ЦП)

Мой код на C #, framework 4, встроенный VS2010 Pro.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

В принципе невозможно остановить пользователей от уничтожения процессов (вы даже можете убить explorer.exe, который является оболочкой для Windows).

Поэтому рекомендуется писать свои приложения таким образом, чтобы они были устойчивымидля действий пользователя или сбоя.В вашем случае было бы целесообразно возобновить операции в этом процессе.

2 голосов
/ 01 марта 2012

Указывая 'абсолютную' потребность в том, чтобы этот процесс продолжался, я действительно предлагаю отделить критическую часть вашего процесса от приложения winforms и перенести эту часть с компьютера пользователя на сервер компании..
На этом сервере напишите службу , которая будет поддерживать вашу жизненно важную работу и работать все время, когда вам захочется.
Эти «абсолютные» требования могут быть применены только на серверах с резервными дисками., ups единиц и, (особенно) , информированных системных администраторов.

1 голос
/ 01 марта 2012

Вы не можете абсолютно гарантировать эти вещи, но вы можете получить то, что вам нужно:

1) Запускать только в Vista или более поздних версиях Windows, которые назначают уровни безопасности процессам

2) Запустите ваш процесс от имени администратора, чтобы обеспечить максимальный уровень безопасности.

3) Убедитесь, что UAC (контроль учетных записей) включен.

4) Отключите доступ к задачеменеджер для учетной записи пользователя, вошедшего в систему (с помощью групповой политики)

5) Не предоставляйте пользователю, вошедшему в систему, возможности подняться до уровня администратора, чтобы он не мог запустить что-либо, имеющее привилегии для остановки вашего процесса.

6) Используйте скрипт завершения работы , чтобы проверить, запущен ли ваш процесс, и предотвратить завершение работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...