ProcessStartInfo.UseShellExecute プロパティ

定義

プロセスの起動にオペレーティング システムのシェルを使用するかどうかを示す値を取得または設定します。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

プロパティ値

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. 既定値は true .NET Framework アプリと false .net Core アプリ上にあります。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

注釈

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

このコンテキスト () の "シェル" は、 UseShellExecute コマンドシェル (やなど) ではなくグラフィックシェル (Windows シェルに似ています) を参照 bash し、ユーザーがグラフィカルなアプリケーションを sh 起動したり、ドキュメントを開いたりできるようにします。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.

注意

UseShellExecutefalse UserName プロパティが null または空の文字列でない場合、または InvalidOperationException メソッドが呼び出されるとがスローされ Process.Start(ProcessStartInfo) ます。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. がの場合 UseShellExecutefalse 、オブジェクトを使用して実行可能ファイルだけを開始でき Process ます。When UseShellExecute is false, you can start only executables by using the Process object.

注意

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

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

WorkingDirectoryWorkingDirectory

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

がの場合 UseShellExecute falseWorkingDirectory プロパティは実行可能ファイルの検索には使用されません。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. がの場合 UseShellExecute 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.

適用対象

こちらもご覧ください