ProcessStartInfo.UseShellExecute Özellik

Tanım

İşlemi başlatmak için işletim sistemi kabuğu 'nun kullanılıp kullanılmayacağını gösteren bir değer alır veya ayarlar.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

Özellik Değeri

işlem başlatılırken kabuğun kullanılması gerekiyorsa true; işlemin doğrudan yürütülebilir dosyadan oluşturulması gerekiyorsa false.true if the shell should be used when starting the process; false if the process should be created directly from the executable file. Varsayılan, .NET Framework uygulamalar ve false .NET Core uygulamalarında true.The default is true on .NET Framework apps and false on .NET Core apps.

Özel Durumlar

Evrensel Windows Platformu (UWP) uygulamalarında true değeri ayarlama girişimi oluşur.An attempt to set the value to true on Universal Windows Platform (UWP) apps occurs.

Örnekler

// 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

Açıklamalar

Bu özelliği false olarak ayarlamak, giriş, çıkış ve hata akışlarını yeniden yönlendirmenizi sağlar.Setting this property to false enables you to redirect input, output, and error streams.

Bu bağlamdaki "Shell" sözcüğü (UseShellExecute), komut kabukları yerine (örneğin, bash veya sh) bir grafik kabuğuna başvurur ve kullanıcıların grafik uygulamaları ve açık belgeleri açmasına olanak sağlar.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.

Not

UserName özelliğinin null veya boş bir dize olmaması veya InvalidOperationException yöntemi çağrıldığında bir Process.Start(ProcessStartInfo) false UseShellExecute gerekir.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.

İşlemleri başlatmak için işletim sistemi kabuğu 'nu kullandığınızda, herhangi bir belgeyi (varsayılan bir açık eylemi olan bir yürütülebilirle ilişkilendirilmiş herhangi bir kayıtlı dosya türü) başlatabilir ve dosya üzerinde Process nesnesini kullanarak işlem yapabilirsiniz.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. UseShellExecute falseolduğunda, yalnızca Process nesnesini kullanarak yürütülebilir dosyaları başlatabilirsiniz.When UseShellExecute is false, you can start only executables by using the Process object.

Not

ErrorDialog özelliğini trueolarak ayarlarsanız UseShellExecute true olmalıdır.UseShellExecute must be true if you set the ErrorDialog property to true.

WindowStyle ProcessWindowStyle.Hiddenolarak ayarlarsanız UseShellExecute trueolarak ayarlanmalıdır.If you set the WindowStyle to ProcessWindowStyle.Hidden, UseShellExecute must be set to true.

BaşlangıçWorkingDirectory

WorkingDirectory özelliği, UseShellExecute özelliğinin değerine bağlı olarak farklı davranır.The WorkingDirectory property behaves differently depending on the value of the UseShellExecute property. UseShellExecute trueolduğunda WorkingDirectory özelliği yürütülebilir dosyanın konumunu belirtir.When UseShellExecute is true, the WorkingDirectory property specifies the location of the executable. WorkingDirectory boş bir dize ise, geçerli dizinin yürütülebilir dosyayı içerdiği varsayılır.If WorkingDirectory is an empty string, it is assumed that the current directory contains the executable.

UseShellExecute falseolduğunda, çalıştırılabilir dosyayı bulmak için WorkingDirectory özelliği kullanılmaz.When UseShellExecute is false, the WorkingDirectory property is not used to find the executable. Bunun yerine, yalnızca başlatılan işlem tarafından kullanılır ve yalnızca yeni işlem bağlamında anlamı vardır.Instead, it is used only by the process that is started and has meaning only within the context of the new process. UseShellExecute falseolduğunda, FileName özelliği yürütülebilir dosyanın tam yolu veya sistemin PATH ortam değişkeni tarafından belirtilen klasörler içinde bulmayı deneyeceği basit bir yürütülebilir dosya adı olabilir.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.

Şunlara uygulanır

Ayrıca bkz.