ProcessStartInfo.UseShellExecute Propriedade

Definição

Obtém ou define um valor que indica se o shell do sistema operacional deve ser usado para iniciar o processo.

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

Valor da propriedade

true se o shell deve ser usado ao iniciar o processo; false se o processo deve ser criado diretamente do arquivo executável. O padrão é false (ou true em aplicativos do .NET Framework).

Exceções

Ocorre uma tentativa de definir o valor como true em aplicativos Plataforma Universal do Windows (UWP).

Exemplos

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

Comentários

A ProcessStartInfo classe especifica um conjunto de valores que são usados quando você inicia um processo.

A definição da propriedade UseShellExecute para false permite redirecionar os fluxos de entrada, saída e erro.

A palavra "shell" neste contexto (UseShellExecute) refere-se a um shell gráfico (semelhante ao shell do Windows) em vez de shells de comando (por exemplo, bash ou sh) e permite que os usuários iniciem aplicativos gráficos ou documentos abertos.

Note

UseShellExecute deve ser false se a propriedade UserName não seja null ou uma cadeia de caracteres vazia, ou uma InvalidOperationException será gerada quando o método Process.Start(ProcessStartInfo) for chamado.

Ao usar o shell do sistema operacional para iniciar processos, você pode iniciar qualquer documento (que seja qualquer tipo de arquivo registrado associado a um executável que tenha uma ação aberta padrão) e executar operações no arquivo, como impressão, usando o Process objeto. Quando UseShellExecute for false, você poderá iniciar apenas executáveis usando objeto Process.

Note

UseShellExecute deve ser true se você definir a ErrorDialog propriedade como true.

WorkingDirectory

A WorkingDirectory propriedade se comporta de forma diferente dependendo do valor da UseShellExecute propriedade. Quando UseShellExecute é true, a WorkingDirectory propriedade especifica o local do executável. Se for uma cadeia de caracteres vazia, supõe-se WorkingDirectory que o diretório atual contenha o executável.

Quando UseShellExecute for false, a propriedade WorkingDirectory não será usada para localizar o executável. Em vez disso, ele é usado apenas pelo processo iniciado e tem significado somente dentro do contexto do novo processo. Quando UseShellExecute for false, a propriedade FileName poderá ser um caminho completo para o executável ou um nome simples do executável que o sistema tentará encontrar dentro das pastas especificadas pela variável de ambiente PATH. A interpretação do caminho de pesquisa depende do sistema operacional. Para obter mais informações, insira HELP PATH ou man sh em um prompt de comando.

Aplica-se a

Confira também