Compartilhar via


Process.Start Método

Definição

Inicia um recurso de processo e o associa a um componente Process.

Sobrecargas

Start(String, String, String, SecureString, String)

Inicia um recurso de processo, especificando o nome de um aplicativo, um conjunto de argumentos de linha de comando, um nome de usuário, uma senha e um domínio e associa o recurso a um novo componente Process.

Start(String, String, SecureString, String)

Inicia um recurso de processo, especificando o nome de um aplicativo, um nome de usuário, uma senha e um domínio e associa o recurso a um novo componente Process.

Start(String, String)

Inicia um recurso de processo especificando o nome de um aplicativo e um conjunto de argumentos de linha de comando e associa o recurso a um novo componente Process.

Start(String)

Inicia um recurso de processo especificando o nome de um arquivo de aplicativo ou documento e associa o recurso a um novo componente Process.

Start(ProcessStartInfo)

Inicia o recurso de processo especificado pelo parâmetro que contém informações de início do processo (por exemplo, o nome do arquivo do processo a ser iniciado) e associa o recurso a um novo componente Process.

Start()

Inicia (ou reutiliza) o recurso do processo que é especificado pela propriedade StartInfo desse componente Process e o associa ao componente.

Start(String, IEnumerable<String>)

Inicia um recurso de processo especificando o nome de um aplicativo e um conjunto de argumentos de linha de comando.

Start(String, String, String, SecureString, String)

Origem:
Process.Unix.cs
Origem:
Process.Unix.cs
Origem:
Process.Unix.cs

Importante

Esta API não está em conformidade com CLS.

Inicia um recurso de processo, especificando o nome de um aplicativo, um conjunto de argumentos de linha de comando, um nome de usuário, uma senha e um domínio e associa o recurso a um novo componente Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Parâmetros

fileName
String

O nome de um arquivo de aplicativo a ser executado no processo.

arguments
String

Argumentos de linha de comando a serem passados durante o início do processo.

userName
String

O nome de usuário a ser usado ao iniciar o processo.

password
SecureString

Um SecureString que contém a senha a ser usada ao iniciar o processo.

domain
String

O domínio a ser usado ao iniciar o processo.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado. Observe que um novo processo iniciado junto com instâncias já em execução do mesmo processo será independente dos outros. Além disso, Iniciar poderá retornar um Processo não nulo com a propriedade HasExited já definida como true. Nesse caso, o processo iniciado pode ter ativado uma instância existente de si próprio e fechado em seguida.

Atributos

Exceções

Nenhum nome de arquivo foi especificado.

Ocorreu um erro ao abrir o arquivo associado.

- ou -

Não foi possível encontrar o arquivo especificado no fileName.

- ou -

A soma do tamanho dos argumentos e o tamanho do caminho completo para o arquivo associado excede 2.080. A mensagem de erro associada a essa exceção pode ser uma das seguintes: "A área de dados passada para uma chamada do sistema é muito pequena" ou "Acesso negado".

O objeto do processo já foi descartado.

Este membro não é compatível com o Linux ou o macOS (somente .NET Core).

Comentários

Use essa sobrecarga para criar um novo processo e seu thread primário especificando seu nome de arquivo, argumentos de linha de comando, nome de usuário, senha e domínio. Em seguida, o novo processo executa o arquivo executável especificado no contexto de segurança das credenciais especificadas (usuário, domínio e senha).

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Quando o arquivo executável está localizado em uma unidade remota, você deve identificar o compartilhamento de rede usando um URI (uniform resource identifier), não uma letra de unidade vinculada.

Observação

Se o endereço do arquivo executável a ser iniciado for uma URL, o processo não será iniciado e null será retornado.

Essa sobrecarga permite que você inicie um processo sem primeiro criar uma nova Process instância. A sobrecarga é uma alternativa às etapas explícitas de criação de uma nova Process instância, a definição das FileNamepropriedades , Arguments, UserName, Passworde Domain da StartInfo propriedade e a chamada Start para a Process instância.

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 parâmetro . Por exemplo, você pode definir o fileName parâmetro como "Notepad.exe" ou "Bloco de Notas". Se o fileName parâmetro representar um arquivo executável, o arguments parâmetro poderá representar um arquivo para agir, como o arquivo de texto em Notepad.exe myfile.txt.

Observação

O nome do arquivo deve representar um arquivo executável nas Start sobrecargas que têm userNameparâmetros , passworde domain .

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade.

Aplica-se a

Start(String, String, SecureString, String)

Origem:
Process.Unix.cs
Origem:
Process.Unix.cs
Origem:
Process.Unix.cs

Importante

Esta API não está em conformidade com CLS.

Inicia um recurso de processo, especificando o nome de um aplicativo, um nome de usuário, uma senha e um domínio e associa o recurso a um novo componente Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.Diagnostics.Process? Start (string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Parâmetros

fileName
String

O nome de um arquivo de aplicativo a ser executado no processo.

userName
String

O nome de usuário a ser usado ao iniciar o processo.

password
SecureString

Um SecureString que contém a senha a ser usada ao iniciar o processo.

domain
String

O domínio a ser usado ao iniciar o processo.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado. Observe que um novo processo iniciado junto com instâncias já em execução do mesmo processo será independente dos outros. Além disso, Iniciar poderá retornar um Processo não nulo com a propriedade HasExited já definida como true. Nesse caso, o processo iniciado pode ter ativado uma instância existente de si próprio e fechado em seguida.

Atributos

Exceções

Nenhum nome de arquivo foi especificado.

Erro ao abrir o arquivo associado.

- ou -

Não foi possível encontrar o arquivo especificado no fileName.

O objeto do processo já foi descartado.

Este membro não é compatível com o Linux ou o macOS (somente .NET Core).

Exemplos

O exemplo de código a seguir mostra o uso dessa sobrecarga para iniciar um arquivo executável e também demonstra a geração de um Win32Exception quando é feita uma tentativa de iniciar um aplicativo associado a um arquivo não executável.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

Comentários

Use essa sobrecarga para criar um novo processo e seu thread primário especificando seu nome de arquivo, nome de usuário, senha e domínio. Em seguida, o novo processo executa o arquivo executável especificado no contexto de segurança das credenciais especificadas (usuário, domínio e senha).

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Quando o arquivo executável está localizado em uma unidade remota, você deve identificar o compartilhamento de rede usando um URI (uniform resource identifier), não uma letra de unidade vinculada.

Observação

Se o endereço do arquivo executável a ser iniciado for uma URL, o processo não será iniciado e null será retornado.

Essa sobrecarga permite que você inicie um processo sem primeiro criar uma nova Process instância. A sobrecarga é uma alternativa às etapas explícitas de criação de uma nova Process instância, definição das FileNamepropriedades , UserName, Passworde Domain da StartInfo propriedade e chamada Start para a Process instância.

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 parâmetro . Por exemplo, você pode definir o fileName parâmetro como "Notepad.exe" ou "Bloco de Notas". Se o fileName parâmetro representar um arquivo executável, o arguments parâmetro poderá representar um arquivo para agir, como o arquivo de texto em Notepad.exe myfile.txt.

Observação

O nome do arquivo deve representar um arquivo executável nas Start sobrecargas que têm userNameparâmetros , passworde domain .

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade.

Aplica-se a

Start(String, String)

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Inicia um recurso de processo especificando o nome de um aplicativo e um conjunto de argumentos de linha de comando e associa o recurso a um novo componente Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Parâmetros

fileName
String

O nome de um arquivo de aplicativo a ser executado no processo.

arguments
String

Argumentos de linha de comando a serem passados durante o início do processo.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado. Observe que um novo processo iniciado junto com instâncias já em execução do mesmo processo será independente dos outros. Além disso, Iniciar poderá retornar um Processo não nulo com a propriedade HasExited já definida como true. Nesse caso, o processo iniciado pode ter ativado uma instância existente de si próprio e fechado em seguida.

Atributos

Exceções

O parâmetro fileName ou arguments é null.

Ocorreu um erro ao abrir o arquivo associado.

- ou -

Não foi possível encontrar o arquivo especificado no fileName.

- ou -

A soma do comprimento dos argumentos e do comprimento do caminho completo para o processo excede 2080. A mensagem de erro associada a essa exceção pode ser uma das seguintes: "A área de dados passada para uma chamada do sistema é muito pequena" ou "Acesso negado".

O objeto do processo já foi descartado.

A variável de ambiente PATH tem uma cadeia de caracteres que contém aspas.

Exemplos

O exemplo a seguir gera primeiro uma instância de Explorer da Internet e exibe o conteúdo da pasta Favoritos no navegador. Em seguida, ele inicia algumas outras instâncias de Explorer da Internet e exibe algumas páginas ou sites específicos. Por fim, ele inicia a internet Explorer com a janela sendo minimizada enquanto navega para um site específico.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Comentários

Use essa sobrecarga para iniciar um recurso de processo especificando seu nome de arquivo e argumentos de linha de comando. A sobrecarga associa o recurso a um novo Process objeto .

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Se o endereço do arquivo executável a ser iniciado for uma URL, o processo não será iniciado e null será retornado.

Essa sobrecarga permite que você inicie um processo sem primeiro criar uma nova Process instância. A sobrecarga é uma alternativa às etapas explícitas de criação de uma nova Process instância, definição dos FileName membros e Arguments da StartInfo propriedade e chamada Start para a Process instância.

Iniciar um processo especificando seu nome de arquivo e argumentos é semelhante a digitar o nome do arquivo e os argumentos de linha de comando na Run caixa de diálogo do menu do Windows Start . Portanto, o nome do arquivo 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 nome do arquivo 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 Run caixa de diálogo pode aceitar um nome de arquivo executável com ou sem a extensão .exe, a extensão .exe é opcional no fileName parâmetro . Por exemplo, você pode definir o fileName parâmetro como "Notepad.exe" ou "Bloco de notas". Se o fileName parâmetro representar um arquivo executável, o arguments parâmetro poderá representar um arquivo para agir, como o arquivo de texto em Notepad.exe myfile.txt. Se o fileName parâmetro representar um arquivo de comando (.cmd), o arguments parâmetro deverá incluir um argumento "/c" ou "/k" para especificar se a janela de comando é encerrada ou permanece após a conclusão.

Ao contrário das outras sobrecargas, a sobrecarga de Start que não tem parâmetros não é um static membro. Use essa sobrecarga quando já tiver criado uma Process instância e as informações de início especificadas (incluindo o nome do arquivo) e quiser iniciar um recurso de processo e associá-lo à instância existente Process . Use uma das static sobrecargas quando quiser criar um novo Process componente em vez de iniciar um processo para um componente existente. Essa sobrecarga e a sobrecarga que não tem parâmetros permitem que você especifique o nome do arquivo do recurso de processo a ser iniciado e os argumentos de linha de comando a serem passados.

Se você tiver uma variável de caminho declarada em seu sistema usando aspas, deverá qualificar totalmente esse caminho ao iniciar qualquer processo encontrado nesse local. Caso contrário, o sistema não encontrará o caminho. Por exemplo, se c:\mypath não estiver em seu caminho e você adicioná-lo usando aspas: path = %path%;"c:\mypath", você deverá qualificar totalmente qualquer processo no c:\mypath ao iniciá-lo.

Observação

ASP.NET página da Web e o código de controle do servidor são executados no contexto do processo de trabalho do ASP.NET no servidor Web. Se você usar o Start método em uma página da Web ASP.NET ou controle de servidor, o novo processo será executado no servidor Web com permissões restritas. O processo não é iniciado no mesmo contexto que o navegador do cliente e não tem acesso à área de trabalho do usuário.

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade .

Uma observação sobre estados de apartment em threads gerenciados é necessária aqui. Quando UseShellExecute estiver true na propriedade do componente de StartInfo processo, verifique se você definiu um modelo de threading em seu aplicativo definindo o atributo [STAThread] no main() método . Caso contrário, um thread gerenciado pode estar em um unknown estado ou ser colocado no estado , o último dos quais entra em MTA conflito com UseShellExecute ser true. Alguns métodos exigem que o estado do apartamento não seja unknown. Se o estado não estiver definido explicitamente, quando o aplicativo encontrar esse método, ele usará como padrão MTAe, uma vez definido, o estado do apartment não poderá ser alterado. No entanto, MTA faz com que uma exceção seja gerada quando o shell do sistema operacional estiver gerenciando o thread.

Confira também

Aplica-se a

Start(String)

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Inicia um recurso de processo especificando o nome de um arquivo de aplicativo ou documento e associa o recurso a um novo componente Process.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName);
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Parâmetros

fileName
String

O nome de um arquivo de aplicativo ou documento a ser executado no processo.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado. Observe que um novo processo iniciado junto com instâncias já em execução do mesmo processo será independente dos outros. Além disso, Iniciar poderá retornar um Processo não nulo com a propriedade HasExited já definida como true. Nesse caso, o processo iniciado pode ter ativado uma instância existente de si próprio e fechado em seguida.

Atributos

Exceções

Ocorreu um erro ao abrir o arquivo associado.

- ou -

Não foi possível encontrar o arquivo especificado no fileName.

O objeto do processo já foi descartado.

A variável de ambiente PATH tem uma cadeia de caracteres que contém aspas.

Exemplos

O exemplo a seguir gera primeiro uma instância de internet Explorer e exibe o conteúdo da pasta Favoritos no navegador. Em seguida, ele inicia algumas outras instâncias de Explorer da Internet e exibe algumas páginas ou sites específicos. Por fim, ele inicia a internet Explorer com a janela sendo minimizada enquanto navega para um site específico.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Comentários

Use essa sobrecarga para iniciar um recurso de processo especificando seu nome de arquivo. A sobrecarga associa o recurso a um novo Process objeto .

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Se o endereço do arquivo executável a ser iniciado for uma URL, o processo não será iniciado e null será retornado.

Essa sobrecarga permite que você inicie um processo sem primeiro criar uma nova Process instância. A sobrecarga é uma alternativa às etapas explícitas de criação de uma nova Process instância, definição do FileName membro da StartInfo propriedade e chamada Start para a Process instância.

Você pode iniciar um aplicativo ClickOnce definindo o fileName parâmetro 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.

Iniciar um processo especificando seu nome de arquivo é semelhante a digitar as informações na Run caixa de diálogo do menu do Windows Start . Portanto, o nome do arquivo 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 nome do arquivo 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 Run caixa de diálogo pode aceitar um nome de arquivo executável com ou sem a extensão .exe, a extensão .exe é opcional no fileName parâmetro . Por exemplo, você pode definir o fileName parâmetro como "Notepad.exe" ou "Bloco de notas".

Essa sobrecarga não permite argumentos de linha de comando para o processo. Se você precisar especificar um ou mais argumentos de linha de comando para o processo, use as Process.Start(ProcessStartInfo) sobrecargas ou Process.Start(String, String) .

Ao contrário das outras sobrecargas, a sobrecarga de Start que não tem parâmetros não é um static membro. Use essa sobrecarga quando já tiver criado uma Process instância e as informações de início especificadas (incluindo o nome do arquivo) e quiser iniciar um recurso de processo e associá-lo à instância existente Process . Use uma das static sobrecargas quando quiser criar um novo Process componente em vez de iniciar um processo para um componente existente. Essa sobrecarga e a sobrecarga que não tem parâmetros permitem que você especifique o nome do arquivo do recurso de processo a ser iniciado.

Se você tiver uma variável de caminho declarada em seu sistema usando aspas, deverá qualificar totalmente esse caminho ao iniciar qualquer processo encontrado nesse local. Caso contrário, o sistema não encontrará o caminho. Por exemplo, se c:\mypath não estiver em seu caminho e você adicioná-lo usando aspas: path = %path%;"c:\mypath", você deverá qualificar totalmente qualquer processo no c:\mypath ao iniciá-lo.

Observação

ASP.NET página da Web e o código de controle do servidor são executados no contexto do processo de trabalho do ASP.NET no servidor Web. Se você usar o Start método em uma página da Web ASP.NET ou controle de servidor, o novo processo será executado no servidor Web com permissões restritas. O processo não é iniciado no mesmo contexto que o navegador do cliente e não tem acesso à área de trabalho do usuário.

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade .

Uma observação sobre estados de apartment em threads gerenciados é necessária aqui. Quando UseShellExecute estiver true na propriedade do componente de StartInfo processo, verifique se você definiu um modelo de threading em seu aplicativo definindo o atributo [STAThread] no main() método . Caso contrário, um thread gerenciado pode estar em um unknown estado ou colocado no estado , o último dos quais entra em MTA conflito com UseShellExecute ser true. Alguns métodos exigem que o estado do apartamento não seja unknown. Se o estado não estiver definido explicitamente, quando o aplicativo encontrar esse método, ele usará como padrão MTAe, uma vez definido, o estado do apartment não poderá ser alterado. No entanto, MTA faz com que uma exceção seja gerada quando o shell do sistema operacional está gerenciando o thread.

Confira também

Aplica-se a

Start(ProcessStartInfo)

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Inicia o recurso de processo especificado pelo parâmetro que contém informações de início do processo (por exemplo, o nome do arquivo do processo a ser iniciado) e associa o recurso a um novo componente Process.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process? Start (System.Diagnostics.ProcessStartInfo startInfo);
public static System.Diagnostics.Process Start (System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Parâmetros

startInfo
ProcessStartInfo

O ProcessStartInfo que contém as informações usadas para iniciar o processo, incluindo o nome do arquivo e quaisquer argumentos de linha de comando.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado. Observe que um novo processo iniciado junto com instâncias já em execução do mesmo processo será independente dos outros. Além disso, Iniciar poderá retornar um Processo não nulo com a propriedade HasExited já definida como true. Nesse caso, o processo iniciado pode ter ativado uma instância existente de si próprio e fechado em seguida.

Atributos

Exceções

Nenhum nome de arquivo foi especificado na propriedade FileName do parâmetro startInfo.

- ou -

A propriedade UseShellExecute do parâmetro startInfo é true e a propriedade RedirectStandardInput, RedirectStandardOutput ou RedirectStandardError também é true.

- ou -

A propriedade UseShellExecute do parâmetro startInfo é true e a propriedade UserName não é null ou está vazia ou a propriedade Password não é null.

O parâmetro startInfo é null.

O objeto do processo já foi descartado.

Ocorreu um erro ao abrir o arquivo associado.

- ou -

O arquivo especificado na propriedade FileName do parâmetro startInfo não pôde ser encontrado.

- ou -

A soma do comprimento dos argumentos e do comprimento do caminho completo para o processo excede 2080. A mensagem de erro associada a essa exceção pode ser uma das seguintes: "A área de dados passada para uma chamada do sistema é muito pequena" ou "Acesso negado".

Sistemas operacionais sem suporte para shell, como o Nano Server (somente .NET Core) não são compatíveis com o método.

Exemplos

O exemplo a seguir gera primeiro uma instância de Explorer da Internet e exibe o conteúdo da pasta Favoritos no navegador. Em seguida, ele inicia algumas outras instâncias de Explorer da Internet e exibe algumas páginas ou sites específicos. Por fim, ele inicia a internet Explorer com a janela sendo minimizada enquanto navega até um site específico.

Para obter exemplos adicionais de outros usos desse método, consulte as propriedades individuais da ProcessStartInfo classe .

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// Opens the Internet Explorer application.
void OpenApplication(String^ myFavoritesPath)
{
    // Start Internet Explorer. Defaults to the home page.
    Process::Start("IExplore.exe");

    // Display the contents of the favorites folder in the browser.
    Process::Start(myFavoritesPath);
}

// Opens urls and .html documents using Internet Explorer.
void OpenWithArguments()
{
    // URLs are not considered documents. They can only be opened
    // by passing them as arguments.
    Process::Start("IExplore.exe", "www.northwindtraders.com");

    // Start a Web page using a browser associated with .html and .asp files.
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.htm");
    Process::Start("IExplore.exe", "C:\\myPath\\myFile.asp");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

Comentários

Use essa sobrecarga para iniciar um recurso de processo especificando uma ProcessStartInfo instância. A sobrecarga associa o recurso a um novo Process objeto.

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Se o endereço do arquivo executável a ser iniciado for uma URL, o processo não será iniciado e null será retornado.

Essa sobrecarga permite que você inicie um processo sem primeiro criar uma nova Process instância. Usar essa sobrecarga com um ProcessStartInfo parâmetro é uma alternativa às etapas explícitas de criação de uma nova Process instância, definição de suas StartInfo propriedades e chamada Start para a Process instância.

Usar uma ProcessStartInfo instância como parâmetro permite que você chame Start com mais controle sobre o que é passado para a chamada para iniciar o processo. Se você precisar passar apenas um nome de arquivo ou um nome de arquivo e argumentos, não será necessário criar uma nova ProcessStartInfo instância, embora essa seja uma opção. A única Process.StartInfo propriedade que deve ser definida é a FileName propriedade . 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, a FileName propriedade poderá ter uma extensão .txt se você tiver arquivos de texto associados a um editor, como o Bloco de Notas, ou se ela puder ter uma extensão .doc se você tiver associado arquivos .doc a uma ferramenta de processamento de palavras, como o Microsoft Word.

Você pode iniciar um aplicativo ClickOnce especificando 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 as ProcessStartInfo.UserName propriedades e ProcessStartInfo.Password da StartInfo instância forem definidas, a função não gerenciada CreateProcessWithLogonW será chamada, o que iniciará o processo em uma nova janela, mesmo que o valor da ProcessStartInfo.CreateNoWindow propriedade seja true ou o valor da ProcessStartInfo.WindowStyle propriedade seja ProcessWindowStyle.Hidden. Se a ProcessStartInfo.Domain propriedade for null, a ProcessStartInfo.UserName propriedade deverá estar no formato UPN,DNS_domain_name do usuário@.

Ao contrário das outras sobrecargas, a sobrecarga de Start que não tem parâmetros não é um static membro. Use essa sobrecarga quando você já tiver criado uma Process instância e as informações de início especificadas (incluindo o nome do arquivo) e quiser iniciar um recurso de processo e associá-lo à instância existente Process . Use uma das static sobrecargas quando quiser criar um novo Process componente em vez de iniciar um processo para um componente existente. Essa sobrecarga e a sobrecarga que não tem parâmetros permitem que você especifique as informações de início do recurso de processo usando uma ProcessStartInfo instância.

Se você tiver uma variável de caminho declarada em seu sistema usando aspas, deverá qualificar totalmente esse caminho ao iniciar qualquer processo encontrado nesse local. Caso contrário, o sistema não encontrará o caminho. Por exemplo, se c:\mypath não estiver em seu caminho e você adicioná-lo usando aspas: path = %path%;"c:\mypath", você deverá qualificar totalmente qualquer processo no c:\mypath ao iniciá-lo.

Observação

ASP.NET página da Web e o código de controle do servidor são executados no contexto do processo de trabalho ASP.NET no servidor Web. Se você usar o Start método em uma página da Web ASP.NET ou no controle do servidor, o novo processo será executado no servidor Web com permissões restritas. O processo não é iniciado no mesmo contexto que o navegador do cliente e não tem acesso à área de trabalho do usuário.

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade.

Uma observação sobre estados de apartamento em threads gerenciados é necessária aqui. Quando UseShellExecute estiver true no startInfo parâmetro , verifique se você definiu um modelo de threading em seu aplicativo definindo o atributo [STAThread] no main() método . Caso contrário, um thread gerenciado pode estar em um unknown estado ou colocado no estado , o último dos quais entra em MTA conflito com UseShellExecute ser true. Alguns métodos exigem que o estado do apartamento não seja unknown. Se o estado não estiver definido explicitamente, quando o aplicativo encontrar esse método, ele usará como padrão MTAe, uma vez definido, o estado do apartment não poderá ser alterado. No entanto, MTA faz com que uma exceção seja gerada quando o shell do sistema operacional está gerenciando o thread.

Confira também

Aplica-se a

Start()

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Inicia (ou reutiliza) o recurso do processo que é especificado pela propriedade StartInfo desse componente Process e o associa ao componente.

public:
 bool Start();
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public bool Start ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public bool Start ();
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Start : unit -> bool
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Start : unit -> bool
Public Function Start () As Boolean

Retornos

true se um recurso de processo for iniciado, false se nenhum novo recurso de processo for iniciado (por exemplo, se um processo existente for reutilizado).

Atributos

Exceções

Não foi especificado nenhum nome de arquivo no StartInfo do componente Process.

- ou -

O membro UseShellExecute da propriedade StartInfo é true enquanto RedirectStandardInput, RedirectStandardOutput ou RedirectStandardError é true.

Erro ao abrir o arquivo associado.

O objeto do processo já foi descartado.

Sistemas operacionais sem suporte para shell, como o Nano Server (somente .NET Core) não são compatíveis com o método.

Exemplos

O exemplo a seguir usa uma instância da Process classe para iniciar um processo.

#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

Use essa sobrecarga para iniciar um recurso de processo e associá-lo ao componente atual Process . O valor true retornado indica que um novo recurso de processo foi iniciado. Se o recurso de processo especificado pelo FileName membro da StartInfo propriedade já estiver em execução no computador, nenhum recurso de processo adicional será iniciado. Em vez disso, o recurso de processo em execução é reutilizado e false retornado.

Você pode iniciar um aplicativo ClickOnce especificando 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.

Importante

Usar uma instância deste objeto quando você tiver dados não confiáveis é um risco à segurança. Use esse objeto somente quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Observação

Se você estiver usando o Visual Studio, essa sobrecarga do Start método é aquela que você insere em seu código depois de arrastar um Process componente para o designer. Use a Properties janela para expandir a StartInfo categoria e gravar o valor apropriado na FileName propriedade . Suas alterações aparecerão no procedimento do InitializeComponent formulário.

Essa sobrecarga de Start não é um static método . Você deve chamá-lo de uma instância da Process classe . Antes de chamar Start, você deve primeiro especificar StartInfo informações de propriedade para essa Process instância, pois essas informações são usadas para determinar o recurso de processo a ser iniciado.

As outras sobrecargas do Start método são static membros. Você não precisa criar uma instância do Process componente antes de chamar essas sobrecargas do método. Em vez disso, você pode chamar Start para a Process própria classe e um novo Process componente será criado se o processo for iniciado. Ou será null retornado se um processo tiver sido reutilizado. O recurso de processo é associado automaticamente ao novo Process componente retornado pelo Start método .

Os StartInfo membros podem ser usados para duplicar a funcionalidade da Run caixa de diálogo do menu do Windows Start . Qualquer coisa que possa ser digitada em uma linha de comando pode ser iniciada definindo os valores apropriados na StartInfo propriedade . A única StartInfo propriedade que deve ser definida é a FileName propriedade . A FileName propriedade não precisa ser 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, a FileName propriedade pode ter uma extensão .txt se você tiver arquivos de texto associados a um editor, como o Bloco de Notas, ou pode ter uma extensão .doc se você tiver associado arquivos .doc a uma ferramenta de processamento de palavras, como o Microsoft Word.

Na linha de comando, você pode especificar ações a serem executadas para determinados tipos de arquivos. Por exemplo, você pode imprimir documentos ou editar arquivos de texto. Especifique essas ações usando o Verb membro da StartInfo propriedade . Para outros tipos de arquivos, você pode especificar argumentos de linha de comando ao iniciar o arquivo na Run caixa de diálogo. Por exemplo, você poderá passar uma URL como um argumento se especificar o navegador como o FileName. Esses argumentos podem ser especificados no StartInfo membro da Arguments propriedade.

Se você tiver uma variável de caminho declarada em seu sistema usando aspas, deverá qualificar totalmente esse caminho ao iniciar qualquer processo encontrado nesse local. Caso contrário, o sistema não encontrará o caminho. Por exemplo, se c:\mypath não estiver em seu caminho e você adicioná-lo usando aspas: path = %path%;"c:\mypath", você deverá qualificar totalmente qualquer processo no c:\mypath ao iniciá-lo.

Observação

ASP.NET página da Web e o código de controle do servidor são executados no contexto do processo de trabalho do ASP.NET no servidor Web. Se você usar o Start método em uma página da Web ASP.NET ou controle de servidor, o novo processo será executado no servidor Web com permissões restritas. O processo não é iniciado no mesmo contexto que o navegador do cliente e não tem acesso à área de trabalho do usuário.

Sempre que você usa Start para iniciar um processo, talvez seja necessário fechá-lo ou correr o risco de perder recursos do sistema. Feche processos usando CloseMainWindow ou Kill. Você pode marcar se um processo já foi fechado usando sua HasExited propriedade .

Uma observação sobre estados de apartment em threads gerenciados é necessária aqui. Quando UseShellExecute estiver true na propriedade do componente de StartInfo processo, verifique se você definiu um modelo de threading em seu aplicativo definindo o atributo [STAThread] no main() método . Caso contrário, um thread gerenciado pode estar em um unknown estado ou ser colocado no estado , o último dos quais entra em MTA conflito com UseShellExecute ser true. Alguns métodos exigem que o estado do apartamento não seja unknown. Se o estado não estiver definido explicitamente, quando o aplicativo encontrar esse método, ele usará como padrão MTAe, uma vez definido, o estado do apartment não poderá ser alterado. No entanto, MTA faz com que uma exceção seja gerada quando o shell do sistema operacional estiver gerenciando o thread.

Confira também

Aplica-se a

Start(String, IEnumerable<String>)

Origem:
Process.cs
Origem:
Process.cs
Origem:
Process.cs

Inicia um recurso de processo especificando o nome de um aplicativo e um conjunto de argumentos de linha de comando.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::Collections::Generic::IEnumerable<System::String ^> ^ arguments);
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public static System.Diagnostics.Process Start (string fileName, System.Collections.Generic.IEnumerable<string> arguments);
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
static member Start : string * seq<string> -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As IEnumerable(Of String)) As Process

Parâmetros

fileName
String

O nome de um arquivo de aplicativo ou documento a ser executado no processo.

arguments
IEnumerable<String>

Os argumentos de linha de comando a serem passados durante o início do processo.

Retornos

Um novo Process associado ao recurso do processo, ou null, se nenhum recurso do processo tiver sido iniciado.

Atributos

Comentários

Cada argumento será escapado automaticamente, se necessário.

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar todas as entradas.

Aplica-se a