Export (0) Print
Expand All

ProcessStartInfo::UseShellExecute Property

Gets or sets a value indicating whether to use the operating system shell to start the process.

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)

[MonitoringDescriptionAttribute(L"ProcessUseShellExecute")]
public:
property bool UseShellExecute {
	bool get ();
	void set (bool value);
}

Property Value

Type: System::Boolean
true if the shell should be used when starting the process; false if the process should be created directly from the executable file. The default is true.

Setting this property to false enables you to redirect input, output, and error streams.

NoteNote

   UseShellExecute must be false if the UserName property is not nullptr or an empty string, or an InvalidOperationException will be thrown when the Process::Start(ProcessStartInfo) method is called.

When you use the operating system shell to start processes, you can start any document (which is any registered file type associated with an executable that has a default open action) and perform operations on the file, such as printing, by using the Process object. When UseShellExecute is false, you can start only executables by using the Process object.

NoteNote

UseShellExecute must be true if you set the ErrorDialog property to true.

The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Instead, it is used only by the process that is started and has meaning only within the context of the new process. When UseShellExecute is false, the FileName property must be a fully qualified path to the executable.

Process^ compiler = gcnew Process;
compiler->StartInfo->FileName = "cl.exe";
compiler->StartInfo->Arguments = "/clr stdstr.cpp /link /out:sample.exe";
compiler->StartInfo->UseShellExecute = false;
compiler->StartInfo->RedirectStandardOutput = true;
compiler->Start();

Console::WriteLine( compiler->StandardOutput->ReadToEnd() );

compiler->WaitForExit();

.NET Framework

Supported in: 4.5.3, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft