ProcessStartInfo.UseShellExecute Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее, следует ли использовать оболочку операционной системы для запуска процесса.
public:
property bool UseShellExecute { bool get(); void set(bool value); };
public bool UseShellExecute { get; set; }
member this.UseShellExecute : bool with get, set
Public Property UseShellExecute As Boolean
Значение свойства
false (или true в приложениях .NET Framework).
Исключения
Предпринята попытка задать значение true в приложениях Universal Windows Platform (UWP).
Примеры
// Run "csc.exe /r:System.dll /out:sample.exe stdstr.cs". UseShellExecute is false because we're specifying
// an executable directly and in this case depending on it being in a PATH folder. By setting
// RedirectStandardOutput to true, the output of csc.exe is directed to the Process.StandardOutput stream
// which is then displayed in this console window directly.
using (Process compiler = new Process())
{
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();
Console.WriteLine(compiler.StandardOutput.ReadToEnd());
compiler.WaitForExit();
}
' Run "vbc.exe /reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb". UseShellExecute is False
' because we're specifying an executable directly and in this case depending on it being in a PATH folder.
' By setting RedirectStandardOutput to True, the output of csc.exe is directed to the Process.StandardOutput
' stream which is then displayed in this console window directly.
Using compiler As New Process()
compiler.StartInfo.FileName = "vbc.exe"
compiler.StartInfo.Arguments = "/reference:Microsoft.VisualBasic.dll /out:sample.exe stdstr.vb"
compiler.StartInfo.UseShellExecute = False
compiler.StartInfo.RedirectStandardOutput = True
compiler.Start()
Console.WriteLine(compiler.StandardOutput.ReadToEnd())
compiler.WaitForExit()
End Using
Комментарии
Класс ProcessStartInfo задает набор значений, используемых при запуске процесса.
Установка свойства UseShellExecute на false позволяет вам перенаправлять потоки ввода, вывода и ошибок.
Слово "оболочка" в этом контексте (UseShellExecute) относится к графической оболочке (аналогично оболочке Windows), а не к командным оболочкам (например, bash или sh) и позволяет пользователям запускать графические приложения или открывать документы.
Note
UseShellExecute должно быть false, если свойство UserName не является null или пустой строкой, иначе будет выброшено InvalidOperationException при вызове метода Process.Start(ProcessStartInfo).
При использовании оболочки операционной системы для запуска процессов можно запустить любой документ (который является любым зарегистрированным типом файла, связанным с исполняемым файлом с открытым действием по умолчанию) и выполнять операции с файлом, например печать с помощью Process объекта. В этом UseShellExecute случае false можно запустить только исполняемые файлы с помощью объекта Process.
Note
UseShellExecute должен быть true, если свойство ErrorDialog имеет значение true.
WorkingDirectory
Свойство WorkingDirectory ведет себя по-разному в зависимости от значения UseShellExecute свойства. Когда UseShellExecute является true, свойство WorkingDirectory указывает расположение исполняемого файла. Если WorkingDirectory это пустая строка, предполагается, что текущий каталог содержит исполняемый файл.
В случае, когда UseShellExecute является false, свойство WorkingDirectory не используется для поиска исполняемого файла. Вместо этого он используется только запущенным процессом и имеет значение только в контексте нового процесса.
UseShellExecute, когда false, свойство FileName может быть либо полным путем к исполняемому файлу, либо простым именем исполняемого файла, которое система попытается найти в папках, указанных переменной среды PATH. Интерпретация пути поиска зависит от операционной системы. Для получения дополнительной информации введите HELP PATH или man sh в командной строке.