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 в командной строке.

Применяется к

См. также раздел