-> Mod Name: hostfxr.dll
-> Mod Name: hostpolicy.dll
-> Mod Name: coreclr.dll
-> Mod Name: ole32.dll
-> Mod Name: combase.dll
-> Mod Name: OLEAUT32.dll
-> Mod Name: bcryptPrimitives.dll
-> Mod Name: System.Private.CoreLib.dll
...
************************************
Запуск и останов процессов программным образом
Финальными аспектами класса System.Diagnostics.Process
Start() и Kill(). Они позволяют программно запускать и завершать процесс. В качестве примера создадим вспомогательный статический метод StartAndKillProcess() с приведенным ниже кодом.На заметку!
В зависимости от настроек операционной системы, касающихся безопасности для запуска новых процессов могут требоваться права администратора.static void StartAndKillProcess()
{
Process proc = null;
// Запустить Edge и перейти на Facebook!
try
{
proc = Process.Start(@"C:\Program Files (x86)\Microsoft\Edge\
Application\msedge.exe",
"www.facebook.com"); }
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
// Уничтожить процесс по нажатию
Console.Write("--> Hit enter to kill {0}...",
proc.ProcessName);
Console.ReadLine();
// Уничтожить все процессы msedge.exe.
try
{
foreach (var p in Process.GetProcessesByName("MsEdge"))
{
p.Kill(true);
}
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
}
Статический метод Process.Start()
Start(), которая позволяет задавать любые дополнительные аргументы, подлежащие передаче в точку входа программы, в данном случае веб-страницу для загрузки.В результате вызова метода Start()
Kill() уровня экземпляра. Поскольку Microsoft Edge запускает множество процессов, для их уничтожения организован цикл. Вызовы Start() и Kill() помещены внутрь блока try/catch с целью обработки исключений InvalidOperationException. Это особенно важно при вызове метода Kill(), потому что такое исключение генерируется, если процесс был завершен до вызова Kill().На заметку!
В .NET Framework (до выхода .NET Core) для запуска процесса методуProcess.Start() можно было передавать либо полный путь и имя файла процесса, либо его ярлык операционной системы (например, msedge). С появлением .NET Core и межплатформенной поддержки должны указываться полный путь и имя файла процесса. Файловые ассоциации операционной системы можно задействовать с применением класса ProcessStartInfo, раскрываемого в последующих двух разделах.Управление запуском процесса с использованием класса ProcessStartInfo
Метод Process.Start()
System.Diagnostics.ProcessStartInfo для указания дополнительной информации, касающейся запуска определенного процесса. Ниже приведено частичное определение ProcessStartInfo (полное определение можно найти в документации):public sealed class ProcessStartInfo : object
{
public ProcessStartInfo();
public ProcessStartInfo(string fileName);
public ProcessStartInfo(string fileName, string arguments);
public string Arguments { get; set; }
public bool CreateNoWindow { get; set; }
public StringDictionary EnvironmentVariables { get; }
public bool ErrorDialog { get; set; }
public IntPtr ErrorDialogParentHandle { get; set; }