Получение идентификатора процесса при запуске процесса через класс процесса C #

#c# #process #vlc

#c# #процесс #vlc

Вопрос:

Я запускаю задание VLC для записи некоторого потокового аудио из функции c # следующим образом (фактические аргументы не имеют отношения к вопросу):

  Process proc = new Process();
 proc.StartInfo.FileName = "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe";
 proc.StartInfo.Arguments = "someArgs";
 proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
 proc.Start();
  

Если все работает правильно, функция Start() немедленно возвращается, и процесс запускается локально (т.Е. VLC).

  • Как я могу получить идентификатор процесса этого задания VLC, чтобы я мог завершить его позже? С использованием proc.Close() закрывает процесс, но не завершает задание VLC.
  • Какой это самый эффективный способ завершить задание VLC? У меня есть права администратора локально.
  • Как я могу проверить, что задание действительно запустилось правильно? Есть ли какой-либо флаг состояния на объекте proc, который я могу протестировать?

Спасибо, Эндрю

Ответ №1:

Идентификатор должен быть в вашем объекте process как proc.Id.

Вы можете уничтожить его с помощью proc.Kill().

Если при запуске процесса возникает проблема, он выдает исключение (скорее всего, исключение Win32Exception или InvalidOperationException; см. справку.)