Process.StartInfo 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.
public:
property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo
Valor de Propriedade
O ProcessStartInfo que representa os dados com os quais iniciar o processo. Estes argumentos incluem o nome do ficheiro executável ou documento usado para iniciar o processo.
- Atributos
Exceções
O valor que especifica o StartInfo é null.
.NET Core e .NET apenas 5+: O método Start() não foi usado para iniciar o processo.
Exemplos
O exemplo seguinte preenche a StartInfo com o ficheiro a executar, a ação realizada nele e se deve apresentar uma interface de utilizador. Para exemplos adicionais, consulte as páginas de referência para as propriedades da ProcessStartInfo classe.
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
public static void Main()
{
try
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = false;
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
open System.Diagnostics
try
use myProcess = new Process()
myProcess.StartInfo.UseShellExecute <- false
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
myProcess.StartInfo.CreateNoWindow <- true
myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
Public Shared Sub Main()
Try
Using myProcess As New Process()
myProcess.StartInfo.UseShellExecute = False
' You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
' This code assumes the process you are starting will terminate itself.
' Given that it is started without a window so you cannot terminate it
' on the desktop, it must terminate itself or you can do it programmatically
' from this application using the Kill method.
End Using
Catch e As Exception
Console.WriteLine((e.Message))
End Try
End Sub
End Class
End Namespace
Observações
StartInfo representa o conjunto de parâmetros a usar para iniciar um processo. Quando Start é chamado, o StartInfo é usado para especificar o processo a iniciar. O único elemento necessário StartInfo para definir é a FileName propriedade. Iniciar um processo especificando a propriedade FileName é semelhante a escrever a informação na caixa de diálogo Run do menu Windows Start. Portanto, a FileName propriedade não precisa de representar um ficheiro executável. Pode ser de qualquer tipo de ficheiro para o qual a extensão tenha sido associada a uma aplicação instalada no sistema. Por exemplo, o FileName pode ter uma extensão .txt se tiver ficheiros de texto associados a um editor, como o Notepad, ou pode ter um .doc se tiver ficheiros .doc associados a uma ferramenta de processamento de texto, como Microsoft Word. De forma semelhante, da mesma forma que a caixa de diálogo Executar pode aceitar um nome de ficheiro executável com ou sem a extensão .exe, a extensão .exe é opcional no FileName membro. Por exemplo, podes definir a FileName propriedade para "Notepad.exe" ou "Notepad".
Pode iniciar uma aplicação ClickOnce definindo a FileName propriedade para a localização (por exemplo, um endereço Web) a partir da qual instalou originalmente a aplicação. Não inicie uma aplicação ClickOnce especificando a sua localização instalada no seu disco rígido.
Se o nome do ficheiro envolver um ficheiro não executável, como um ficheiro .doc, pode incluir um verbo que especifique que ação tomar sobre o ficheiro. Por exemplo, podes definir para Verb "Imprimir" para um ficheiro que termina na extensão .doc. O nome do ficheiro especificado na FileName propriedade não precisa de extensão se introduzir manualmente um valor para a Verb propriedade. No entanto, se usar a Verbs propriedade para determinar que verbos estão disponíveis, deve incluir a extensão.
Pode alterar os parâmetros especificados na StartInfo propriedade até ao momento em que chama o Start método no processo. Depois de iniciar o processo, alterar os StartInfo valores não afeta nem reinicia o processo associado. Se chamar o Start(ProcessStartInfo) método com o ProcessStartInfo.UserName conjunto de propriedades e ProcessStartInfo.Password , é chamada a função não gerida CreateProcessWithLogonW , que inicia o processo numa nova janela mesmo que o CreateNoWindow valor da propriedade seja true ou o WindowStyle valor da propriedade seja Hidden.
Só deve aceder à StartInfo propriedade num Process objeto devolvido pelo Start método. Por exemplo, não deve aceder à StartInfo propriedade num Process objeto devolvido por GetProcesses. Caso contrário, no .NET Core a propriedade StartInfo lança um InvalidOperationException e no .NET Framework devolve um objeto fictício ProcessStartInfo.
Quando o processo é iniciado, o nome do ficheiro é o ficheiro que preenche a propriedade (apenas MainModule leitura). Se quiser recuperar o ficheiro executável associado ao processo depois de este ter começado, use a MainModule propriedade. Se quiser definir o ficheiro executável de uma Process instância para a qual um processo associado ainda não foi iniciado, use o StartInfo membro da FileName propriedade. Como os elementos da StartInfo propriedade são argumentos que são passados ao Start método de um processo, alterar a FileName propriedade depois de o processo associado ter começado não irá reiniciar a propriedade MainModule . Estas propriedades são usadas apenas para inicializar o processo associado.