Process.Start Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 userName
parâmetros , password
e 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 userName
parâmetros , password
e 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 MTA
e, 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 MTA
e, 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 MTA
e, 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
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 MTA
e, 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.