Partilhar via


Process.StartInfo Propriedade

Definição

Obtém ou define as propriedades a serem passadas para o método Start() do Process.

public:
 property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo

Valor da propriedade

O ProcessStartInfo que representa os dados com os quais o processo será iniciado. Esses argumentos incluem o nome do documento ou arquivo executável usado para iniciar o processo.

Atributos

Exceções

O valor que especifica o StartInfo é null.

Somente .NET Core e .NET 5+: o Start() método não foi usado para iniciar o processo.

Exemplos

O exemplo a seguir preenche um StartInfo com o arquivo a ser executado, a ação executada nele e se ele deve exibir uma interface do usuário. Para obter exemplos adicionais, consulte as páginas de referência para obter propriedades da ProcessStartInfo classe .

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        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 );
    }
}
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);
            }
        }
    }
}
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

Comentários

StartInfo representa o conjunto de parâmetros a ser usado para iniciar um processo. Quando Start é chamado, o StartInfo é usado para especificar o processo a ser iniciado. O único membro necessário StartInfo a ser definido é a FileName propriedade . Iniciar um processo especificando a FileName propriedade é semelhante a digitar as informações na caixa de diálogo Executar do menu Iniciar do Windows. Portanto, a FileName propriedade não precisa representar um arquivo executável. Pode ser de qualquer tipo de arquivo para o qual a extensão foi associada a um aplicativo instalado no sistema. Por exemplo, o FileName pode ter uma extensão .txt se você tiver arquivos de texto associados a um editor, como o Bloco de Notas, ou pode ter um .doc se você tiver associado arquivos .doc a uma ferramenta de processamento de palavras, como o Microsoft Word. Da mesma forma, da mesma forma que a caixa de diálogo Executar pode aceitar um nome de arquivo executável com ou sem a extensão .exe, a extensão .exe é opcional no FileName membro . Por exemplo, você pode definir a FileName propriedade como "Notepad.exe" ou "Bloco de notas".

Você pode iniciar um aplicativo ClickOnce definindo a FileName propriedade como o local (por exemplo, um endereço Web) do qual você instalou originalmente o aplicativo. Não inicie um aplicativo ClickOnce especificando o local instalado no disco rígido.

Se o nome do arquivo envolver um arquivo não recortado, como um arquivo .doc, você poderá incluir um verbo especificando qual ação executar no arquivo. Por exemplo, você pode definir como Verb "Imprimir" para um arquivo que termina na extensão .doc. O nome do FileName arquivo especificado na propriedade não precisará ter uma extensão se você inserir manualmente um valor para a Verb propriedade. No entanto, se você usar a Verbs propriedade para determinar quais verbos estão disponíveis, deverá incluir a extensão .

Você pode alterar os parâmetros especificados na StartInfo propriedade até o momento em que chamar o Start método no processo. Depois de iniciar o processo, alterar os StartInfo valores não afeta nem reinicia o processo associado. Se você chamar o Start(ProcessStartInfo) método com as ProcessStartInfo.UserName propriedades e ProcessStartInfo.Password definidas, a função não gerenciada CreateProcessWithLogonW será chamada, o que iniciará o processo em uma nova janela, mesmo que o valor da CreateNoWindow propriedade seja true ou o valor da WindowStyle propriedade seja Hidden.

Você só deve acessar a StartInfo propriedade em um Process objeto retornado pelo Start método . Por exemplo, você não deve acessar a StartInfo propriedade em um Process objeto retornado por GetProcesses. Caso contrário, no .NET Core, a StartInfo propriedade gerará um InvalidOperationException e em .NET Framework retornará um objeto fictícioProcessStartInfo.

Quando o processo é iniciado, o nome do arquivo é o arquivo que preenche a propriedade (somente leitura). MainModule Se você quiser recuperar o arquivo executável associado ao processo após o início do processo, use a MainModule propriedade . Se você quiser definir o arquivo executável de uma Process instância para a qual um processo associado não foi iniciado, use o StartInfo membro da FileName propriedade. Como os membros da StartInfo propriedade são argumentos passados para o Start método de um processo, alterar a FileName propriedade após o início do processo associado não redefinirá a MainModule propriedade. Essas propriedades são usadas apenas para inicializar o processo associado.

Aplica-se a

Confira também