Вы не сможете узнать, если процесс не предоставит какой-либо вывод или код ошибки.Вы можете посмотреть на ExitCode, используя:
p.ExitCode
Код ошибки предоставляется приложением, поэтому вам также нужно знать, какие значения оно может вернуть.
В некоторых случаях, если процесс завершен (например, через диспетчер задач, ExitCode может быть равен 1, см. этот ответ ).
Обновление
После нашего обмена комментариями кажется, что нужно решить еще несколько вопросов:
Если вы уверены, что процесс на самом деле не отвечает, то его уничтожение является хорошим последнимкурорт.Существует два способа «убить» процесс с помощью класса Process
:
Если у вас есть процесс с графическим интерфейсом, вы должны использовать CloseMainWindow()
.CloseMainWindow()
- это, по сути, то же самое, что нажатие кнопки выхода в окне, поэтому оно безопаснее, потому что на самом деле просит программу выключиться.Обратите внимание, что процесс может на самом деле не отвечать на CloseMainWindow
, либо потому, что он не отвечает, либо потому, что он отказывается, так что, возможно, вам придется использовать Kill()
впоследствии, если это произойдет.
Если у вашего процесса нет графического интерфейса, Kill()
- единственный способ сделать это.
Однако, как вы спросили в комментариях об использовании обоих, вы не должныделайте это, если вы не пытаетесь использовать CloseMainWindow()
, и это не сработало.