«Незаметный» запуск внешних процессов

Иногда возникает необходимость запустить внешний процесс, получить от него какие-либо данные (либо просто дать ему возможность отработать) и затем его закрыть. В .NET Framework для этих целей служит класс System.Diagnostics.Process и с этим классом запуск процессов весьма прост. Однако внешний процесс становится виден пользователю (часто это можно наблюдать при работе инсталляторов), что, вообще-то говоря, нежелательно. А вот чтобы запустить внешний процесс незаметно для пользователя, надо в классе настроек запуска процесса ProcessStartInfo свойству WindowStyle присвоить значение ProcessWindowStyle.Hidden. Но, как гласит русская народная пословица, лучше один раз увидеть, чем сто раз услышать, и поэтому ниже представлен небольшой пример «незаметного» запуска процессов. Приведенный фрагмент кода запускает утилиту Reg.exe (Console Registry Tool for Windows) и делает бэкап ветки реестра HKEY_CLASSES_ROOT\mailto в файл.

static void Main()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "reg";
startInfo.Arguments = @"save HKEY_CLASSES_ROOT\mailto c:\mailto.reg";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(startInfo);

}

Комментарии

Популярные сообщения из этого блога

Команды docker save/load, docker export/import – в чем отличие, как и когда ими пользоваться

Как узнать, кто заблокировал файл или папку

Эрик Гамма переходит на работу в Майкрософт