Команда C # catch kill - PullRequest
       0

Команда C # catch kill

4 голосов
/ 04 августа 2010

как я могу поймать команду windows taskkill, чтобы предотвратить это?

Ответы [ 2 ]

10 голосов
/ 04 августа 2010

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

Итак, у вас есть два приложения;AppA (Main) и AppB (Watchdog).

AppA проверяет, работает ли AppB.Если нет, AppA запускает AppB.

AppB проверяет, работает ли AppA.Если нет, AppB запускает AppA.

Но обычно это проект для злонамеренного процесса, поэтому я надеюсь, что вы ничего не сделаете.

Вы можете увидеть следующие события в очереди сообщений при нажатии Завершить процесс :

WM_CLOSE // UI app

CTRL_CLOSE_EVENT // Консольapp

Но если ваше приложение не закрывается своевременно, то будет отправлена ​​команда kill, которая не может быть захвачена.

1 голос
/ 04 августа 2010

Я почти уверен, что это невозможно, иначе одно приложение может остановить закрытие окон. Даже когда процесс зависает, его уничтожение в диспетчере задач в конечном итоге работает. Если бы это было возможно, вредоносному программному обеспечению и т. Д., Вероятно, пришлось бы использовать его с радостью - они не только могли взять под контроль различные части вашего ПК, но и позаботились о том, чтобы вы никогда не смогли вернуть его обратно.

...