ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute ProcessStartInfo.UseShellExecute Property

定義

プロセスの起動にオペレーティング システムのシェルを使用するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether to use the operating system shell to start the process.

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

プロパティ値

プロセスを起動するときにシェルを使用する場合は true。プロセスを実行可能ファイルから直接作成する場合は falsetrue if the shell should be used when starting the process; false if the process should be created directly from the executable file. 既定値は .NET Framework アプリの場合は true、.NET Core アプリの場合は false です。The default is true on .NET Framework apps and false on .NET Core apps.

例外

ユニバーサル Windows プラットフォーム (UWP) アプリで値を true に設定することが試みられます。An attempt to set the value to true on Universal Windows Platform (UWP) apps occurs.

// Run "cl.exe /cld stdstr.cpp /link /out:sample.exe". 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 cl.exe is directed to the Process.StandardOutput stream
// which is then displayed in this console window directly.    
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();
// 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

注釈

このプロパティを @no__t に設定すると、入力、出力、およびエラーストリームをリダイレクトできます。Setting this property to false enables you to redirect input, output, and error streams.

このコンテキストの "シェル" (UseShellExecute) は、コマンドシェル (たとえば、bashsh) ではなくグラフィカルシェル (Windows シェルに似ています) を参照し、ユーザーがグラフィカルなアプリケーションを起動したり、ドキュメントを開いたりできるようにします。The word "shell" in this context (UseShellExecute) refers to a graphical shell (similar to the Windows shell) rather than command shells (for example, bash or sh) and lets users launch graphical applications or open documents.

注意

UserName プロパティが null または空の文字列ではない場合、UseShellExecute false である必要があります。または、Process.Start(ProcessStartInfo) メソッドが呼び出されたときに @no__t がスローされます。UseShellExecute must be false if the UserName property is not null or an empty string, or an InvalidOperationException will be thrown when the Process.Start(ProcessStartInfo) method is called.

オペレーティングシステムシェルを使用してプロセスを開始する場合は、任意のドキュメント (既定のオープンアクションを持つ実行可能ファイルに関連付けられた任意の登録済みのファイルの種類) を開始し、Process オブジェクトを使用して、印刷などのファイルに対する操作を実行できます。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. @No__t-0 が false の場合、Process オブジェクトを使用して実行可能ファイルだけを開始できます。When UseShellExecute is false, you can start only executables by using the Process object.

注意

ErrorDialog プロパティを true に設定した場合、UseShellExecutetrue である必要があります。UseShellExecute must be true if you set the ErrorDialog property to true.

@No__t-0 を ProcessWindowStyle.Hidden に設定した場合は、UseShellExecutetrue に設定する必要があります。If you set the WindowStyle to ProcessWindowStyle.Hidden, UseShellExecute must be set to true.

WorkingDirectoryWorkingDirectory

@No__t-0 プロパティの動作は、UseShellExecute プロパティの値によって異なります。The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. @No__t-0 が true の場合、WorkingDirectory プロパティは実行可能ファイルの場所を指定します。When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. @No__t-0 が空の文字列の場合、現在のディレクトリに実行可能ファイルが含まれていると見なされます。If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

@No__t-0 が false の場合、WorkingDirectory プロパティは実行可能ファイルの検索には使用されません。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. @No__t-0 が false の場合、FileName プロパティは、実行可能ファイルへの完全修飾パスか、PATH 環境変数で指定されたフォルダー内で検索を試みる単純な実行可能ファイル名のいずれかになります。When UseShellExecute is false, the FileName property can be either a fully qualified path to the executable, or a simple executable name that the system will attempt to find within folders specified by the PATH environment variable.

適用対象

こちらもご覧ください