ProcessStartInfo.UseShellExecute Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recebe ou define um valor que indica se deve usar a shell do sistema operativo 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 de Propriedade
true se a concha deve ser usada no início do processo; false se o processo deve ser criado diretamente a partir do ficheiro executável. O padrão é false (ou true em aplicações .NET Framework).
Exceções
Ocorre uma tentativa de definir o valor para true em Plataforma Universal do Windows (UWP) aplicações.
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
Observações
A ProcessStartInfo classe especifica um conjunto de valores que são usados quando você inicia um processo.
Definir a UseShellExecute propriedade para false permite redirecionar 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 abram documentos.
Note
UseShellExecute deve ser false se a propriedade UserName não null ou for uma cadeia de caracteres vazia, ou um InvalidOperationException será lançado 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 é qualquer tipo de arquivo registrado associado a um executável que tem uma ação de abertura padrão) e executar operações no arquivo, como impressão, usando o Process objeto. Quando UseShellExecute é false, você pode iniciar somente executáveis usando o Process objeto.
Note
UseShellExecute deve ser true se você definir a ErrorDialog propriedade como true.
Diretório de trabalho
A WorkingDirectory propriedade comporta-se de forma diferente dependendo do valor da UseShellExecute propriedade. Quando UseShellExecute é true, a WorkingDirectory propriedade especifica o local do executável. Se WorkingDirectory for uma cadeia de caracteres vazia, presume-se que o diretório atual contém o executável.
Quando UseShellExecute é false, a WorkingDirectory propriedade não é usada para encontrar o executável. Em vez disso, ele é usado apenas pelo processo que é iniciado e tem significado apenas dentro do contexto do novo processo. Quando UseShellExecute é false, a FileName propriedade pode ser um caminho totalmente qualificado para o executável ou um nome executável simples que o sistema tentará encontrar dentro de pastas especificadas pela variável de PATH ambiente. A interpretação do caminho de pesquisa depende do sistema operacional. Para obter mais informações, digite HELP PATH ou man sh em um prompt de comando.