Process.Start Método

Definición

Inicia un recurso de proceso y lo asocia a un componente Process.

Sobrecargas

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

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

Start(String, String, SecureString, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.

Start(String, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process.

Start(String)

Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process.

Start(ProcessStartInfo)

Inicia el recurso de proceso que se especifica mediante el parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process.

Start()

Inicia (o reutiliza) el recurso de proceso especificado por la propiedad StartInfo de este componente Process y lo asocia al componente.

Start(String, IEnumerable<String>)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos.

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

Importante

Esta API no es conforme a CLS.

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de 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

Nombre de un archivo de aplicación que se va a ejecutar en el proceso.

arguments
String

Argumentos de línea de comandos que se van a pasar al iniciar el proceso.

userName
String

Nombre de usuario que se va a usar al iniciarse el proceso.

password
SecureString

SecureString que contiene la contraseña que se va a utilizar al iniciarse el proceso.

domain
String

Dominio que se va a utilizar al iniciarse el proceso.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.

Atributos

Excepciones

No se especificó ningún nombre de archivo.

Se produjo un error al abrir el archivo asociado.

o bien

No se encontró el archivo especificado en fileName.

o bien

La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al archivo asociado supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "el área de datos que se pasa a una llamada del sistema es demasiado pequeña". o "Se denegó el acceso".

El objeto del proceso ya se ha desechado.

Este miembro no es compatible en Linux o macOS (solo en .NET Core).

Comentarios

Use esta sobrecarga para crear un nuevo proceso y su subproceso principal especificando su nombre de archivo, argumentos de línea de comandos, nombre de usuario, contraseña y dominio. A continuación, el nuevo proceso ejecuta el archivo ejecutable especificado en el contexto de seguridad de las credenciales especificadas (usuario, dominio y contraseña).

Nota

Cuando el archivo ejecutable se encuentra en una unidad remota, debe identificar el recurso compartido de red mediante un identificador uniforme de recursos (URI), no una letra de unidad vinculada.

Nota

Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null se devuelve.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer las FileNamepropiedades , UserNameArguments, Password, y Domain de la StartInfo propiedad y llamar a Start para la Process instancia de .

De forma similar, de la misma manera que el cuadro de diálogo Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName parámetro . Por ejemplo, puede establecer el fileName parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName parámetro representa un archivo ejecutable, el arguments parámetro podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt.

Nota

El nombre de archivo debe representar un archivo ejecutable en las Start sobrecargas que tienen userNameparámetros , passwordy domain .

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Se aplica a

Start(String, String, SecureString, String)

Importante

Esta API no es conforme a CLS.

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de 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

Nombre de un archivo de aplicación que se va a ejecutar en el proceso.

userName
String

Nombre de usuario que se va a usar al iniciarse el proceso.

password
SecureString

SecureString que contiene la contraseña que se va a utilizar al iniciarse el proceso.

domain
String

Dominio que se va a utilizar al iniciarse el proceso.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.

Atributos

Excepciones

No se especificó ningún nombre de archivo.

Se produjo un error al abrir el archivo asociado.

o bien

No se encontró el archivo especificado en fileName.

El objeto del proceso ya se ha desechado.

Este miembro no es compatible en Linux o macOS (solo en .NET Core).

Ejemplos

En el ejemplo de código siguiente se muestra el uso de esta sobrecarga para iniciar un archivo ejecutable y también se muestra el inicio de un Win32Exception objeto cuando se intenta iniciar una aplicación asociada a un archivo no ejecutable.

// 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

Comentarios

Use esta sobrecarga para crear un nuevo proceso y su subproceso principal especificando su nombre de archivo, nombre de usuario, contraseña y dominio. A continuación, el nuevo proceso ejecuta el archivo ejecutable especificado en el contexto de seguridad de las credenciales especificadas (usuario, dominio y contraseña).

Nota

Cuando el archivo ejecutable se encuentra en una unidad remota, debe identificar el recurso compartido de red mediante un identificador uniforme de recursos (URI), no una letra de unidad vinculada.

Nota

Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null se devuelve.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer las FileNamepropiedades , UserNamePassword, y Domain de la StartInfo propiedad y llamar a Start para la Process instancia de .

De forma similar, de la misma manera que el cuadro de diálogo Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName parámetro . Por ejemplo, puede establecer el fileName parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName parámetro representa un archivo ejecutable, el arguments parámetro podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt.

Nota

El nombre de archivo debe representar un archivo ejecutable en las Start sobrecargas que tienen userNameparámetros , passwordy domain .

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Se aplica a

Start(String, String)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo 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

Nombre de un archivo de aplicación que se va a ejecutar en el proceso.

arguments
String

Argumentos de línea de comandos que se van a pasar al iniciar el proceso.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.

Atributos

Excepciones

El parámetro fileName o arguments es null.

Se produjo un error al abrir el archivo asociado.

o bien

No se encontró el archivo especificado en fileName.

o bien

La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al proceso supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "el área de datos que se pasa a una llamada del sistema es demasiado pequeña". o "Se denegó el acceso".

El objeto del proceso ya se ha desechado.

La variable de entorno PATH tiene una cadena que contiene comillas.

Ejemplos

En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana que se minimiza mientras navega a un sitio 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

Comentarios

Use esta sobrecarga para iniciar un recurso de proceso especificando su nombre de archivo y argumentos de línea de comandos. La sobrecarga asocia el recurso a un nuevo Process objeto .

Nota

Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null se devuelve.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer los FileName miembros y Arguments de la StartInfo propiedad y llamar a Start para la Process instancia.

Iniciar un proceso especificando su nombre de archivo y argumentos es similar a escribir el nombre de archivo y los argumentos de la línea de comandos en el Run cuadro de diálogo del menú De Windows Start . Por lo tanto, el nombre de archivo no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, el nombre de archivo puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener un .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word. De forma similar, de la misma manera que el Run cuadro de diálogo puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName parámetro . Por ejemplo, puede establecer el fileName parámetro en "Notepad.exe" o "Bloc de notas". Si el fileName parámetro representa un archivo ejecutable, el arguments parámetro podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt. Si el fileName parámetro representa un archivo de comando (.cmd), el arguments parámetro debe incluir un argumento "" o "/c``/k" para especificar si la ventana de comandos sale o permanece después de la finalización.

A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static . Use esa sobrecarga cuando ya haya creado una Process instancia y la información de inicio especificada (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarla a la instancia existente Process . Use una de las static sobrecargas cuando desee crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar el nombre de archivo del recurso de proceso para iniciar y los argumentos de la línea de comandos que se van a pasar.

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificarla por completo al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath", debe calificar completamente cualquier proceso en c:\mypath al iniciarlo.

Nota

ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en un control de servidor o página web de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Aquí es necesaria una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el main() método . De lo contrario, un subproceso administrado puede estar en un unknown estado o colocarlo, el último de los cuales entra en MTA conflicto con UseShellExecute ser true. Algunos métodos requieren que el estado del apartamento no sea unknown. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTAy, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.

Consulte también

Se aplica a

Start(String)

Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo 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

Nombre de un archivo de documento o aplicación que se va a ejecutar en el proceso.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.

Atributos

Excepciones

Se produjo un error al abrir el archivo asociado.

o bien

No se encontró el archivo especificado en fileName.

El objeto del proceso ya se ha desechado.

La variable de entorno PATH tiene una cadena que contiene comillas.

Ejemplos

En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana que se minimiza mientras navega a un sitio 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

Comentarios

Use esta sobrecarga para iniciar un recurso de proceso especificando su nombre de archivo. La sobrecarga asocia el recurso a un nuevo Process objeto .

Nota

Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null se devuelve.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. La sobrecarga es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer el FileName miembro de la StartInfo propiedad y llamar a Start para la Process instancia.

Puede iniciar una aplicación ClickOnce estableciendo el fileName parámetro en la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.

Iniciar un proceso especificando su nombre de archivo es similar a escribir la información en el Run cuadro de diálogo del menú De Windows Start . Por lo tanto, el nombre de archivo no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, el nombre de archivo puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener un .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word. De forma similar, de la misma manera que el Run cuadro de diálogo puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el fileName parámetro . Por ejemplo, puede establecer el fileName parámetro en "Notepad.exe" o "Bloc de notas".

Esta sobrecarga no permite argumentos de línea de comandos para el proceso. Si necesita especificar uno o varios argumentos de línea de comandos para el proceso, use las Process.Start(ProcessStartInfo) sobrecargas o Process.Start(String, String) .

A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static . Use esa sobrecarga cuando ya haya creado una Process instancia y la información de inicio especificada (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarla a la instancia existente Process . Use una de las static sobrecargas cuando desee crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar el nombre de archivo del recurso de proceso que se va a iniciar.

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificarla por completo al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath", debe calificar completamente cualquier proceso en c:\mypath al iniciarlo.

Nota

ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en un control de servidor o página web de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Aquí es necesaria una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el main() método . De lo contrario, un subproceso administrado puede estar en un unknown estado o colocarlo, el último de los cuales entra en MTA conflicto con UseShellExecute ser true. Algunos métodos requieren que el estado del apartamento no sea unknown. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTAy, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.

Consulte también

Se aplica a

Start(ProcessStartInfo)

Inicia el recurso de proceso que se especifica mediante el parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo 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

ProcessStartInfo que contiene la información que se usa para iniciar el proceso, incluidos el nombre de archivo y los argumentos de línea de comandos.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Observe que un proceso nuevo que se inicia junto a instancias del mismo proceso ya en ejecución es independiente de los demás. Además, Inicio puede devolver un proceso no nulo con su propiedad HasExited ya establecida en true. En tal caso, el proceso iniciado puede haber activado una instancia existente de sí mismo y, a continuación, haber salido.

Atributos

Excepciones

No se especificó ningún nombre de archivo en la propiedad FileName del parámetro startInfo.

o bien

La propiedad UseShellExecute del parámetro startInfo es true y las propiedades RedirectStandardInput, RedirectStandardOutput o RedirectStandardError también son true.

o bien

La propiedad UseShellExecute del parámetro startInfo es true y la propiedad UserName no es null o está vacía, o la propiedad Password no es null.

El parámetro startInfo es null.

El objeto del proceso ya se ha desechado.

Se produjo un error al abrir el archivo asociado.

o bien

El archivo especificado en la propiedad FileName del parámetro startInfo no se encontró.

o bien

La suma de la longitud de los argumentos y la longitud de la ruta de acceso completa al proceso supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "el área de datos que se pasa a una llamada del sistema es demasiado pequeña". o "Se denegó el acceso".

Método que no se admite en sistemas operativos sin la compatibilidad de shell, como Nano Server (solo en .NET Core).

Ejemplos

En el ejemplo siguiente se genera primero una instancia de Internet Explorer y se muestra el contenido de la carpeta Favoritos en el explorador. A continuación, inicia algunas otras instancias de Internet Explorer y muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana que se minimiza mientras navega a un sitio específico.

Para obtener ejemplos adicionales de otros usos de este método, consulte las propiedades individuales de la ProcessStartInfo clase .

#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

Comentarios

Use esta sobrecarga para iniciar un recurso de proceso especificando una ProcessStartInfo instancia de . La sobrecarga asocia el recurso a un nuevo Process objeto .

Nota

Si la dirección del archivo ejecutable que se va a iniciar es una dirección URL, el proceso no se inicia y null se devuelve.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva Process instancia. El uso de esta sobrecarga con un ProcessStartInfo parámetro es una alternativa a los pasos explícitos para crear una nueva Process instancia, establecer sus StartInfo propiedades y llamar Start a para la Process instancia.

El uso de una ProcessStartInfo instancia como parámetro le permite llamar Start con el mayor control sobre lo que se pasa a la llamada para iniciar el proceso. Si solo necesita pasar un nombre de archivo o un nombre de archivo y argumentos, no es necesario crear una nueva ProcessStartInfo instancia, aunque es una opción. La única Process.StartInfo propiedad que se debe establecer es la FileName propiedad . La FileName propiedad no necesita representar un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, la FileName propiedad puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener una extensión de .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word.

Puede iniciar una aplicación ClickOnce especificando la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.

Si se establecen las ProcessStartInfo.UserName propiedades y ProcessStartInfo.Password de la StartInfo instancia, se llama a la función no administrada CreateProcessWithLogonW , que inicia el proceso en una nueva ventana incluso si el ProcessStartInfo.CreateNoWindow valor de propiedad es true o el valor de propiedad ProcessStartInfo.WindowStyle es ProcessWindowStyle.Hidden. Si la ProcessStartInfo.Domain propiedad es null, la ProcessStartInfo.UserName propiedad debe estar en formato UPN, el usuario@DNS_domain_name.

A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es miembro static . Use esa sobrecarga cuando ya haya creado una Process instancia y haya especificado información de inicio (incluido el nombre de archivo) y desee iniciar un recurso de proceso y asociarlo a la instancia existente Process . Use una de las static sobrecargas cuando quiera crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar la información de inicio del recurso de proceso mediante una ProcessStartInfo instancia de .

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath", debe calificar completamente cualquier proceso en c:\mypath al iniciarlo.

Nota

ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en un control de servidor o página web de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Aquí es necesaria una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true en el startInfo parámetro , asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el main() método . De lo contrario, un subproceso administrado puede estar en un unknown estado o colocarlo, el último de los cuales entra en MTA conflicto con UseShellExecute ser true. Algunos métodos requieren que el estado del apartamento no sea unknown. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTAy, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.

Consulte también

Se aplica a

Start()

Inicia (o reutiliza) el recurso de proceso especificado por la propiedad StartInfo de este componente Process y lo asocia al 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

Devoluciones

Boolean

Es true si se inicia un recurso de proceso; es false si no se inicia ningún recurso de proceso nuevo (por ejemplo, si se vuelve a usar un recurso existente).

Atributos

Excepciones

No se especificó ningún nombre de archivo en StartInfo del componente Process.

o bien

El miembro UseShellExecute de la propiedad StartInfo es true mientras RedirectStandardInput, RedirectStandardOutputo RedirectStandardError es true.

Se produjo un error al abrir el archivo asociado.

El objeto del proceso ya se ha desechado.

Método que no se admite en sistemas operativos sin la compatibilidad de shell, como Nano Server (solo en .NET Core).

Ejemplos

En el ejemplo siguiente se usa una instancia de la Process clase para iniciar un proceso.

#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

Comentarios

Use esta sobrecarga para iniciar un recurso de proceso y asociarlo al componente actual Process . El valor true devuelto indica que se inició un nuevo recurso de proceso. Si el recurso de proceso especificado por el FileName miembro de la StartInfo propiedad ya se está ejecutando en el equipo, no se inicia ningún recurso de proceso adicional. En su lugar, se reutiliza el recurso de proceso en ejecución y false se devuelve.

Puede iniciar una aplicación ClickOnce especificando la ubicación (por ejemplo, una dirección web) desde la que instaló originalmente la aplicación. No inicie una aplicación ClickOnce especificando su ubicación instalada en el disco duro.

Nota

Si usa Visual Studio, esta sobrecarga del método es la que inserta en el Start código después de arrastrar un Process componente al diseñador. Use la Properties ventana para expandir la StartInfo categoría y escribir el valor adecuado en la FileName propiedad . Los cambios aparecerán en el procedimiento del InitializeComponent formulario.

Esta sobrecarga de Start no es un static método . Debe llamarlo desde una instancia de la Process clase . Antes de llamar a Start, primero debe especificar StartInfo información de propiedad para esta Process instancia, ya que esa información se usa para determinar el recurso de proceso que se va a iniciar.

Las demás sobrecargas del Start método son static miembros. No es necesario crear una instancia del Process componente antes de llamar a esas sobrecargas del método . En su lugar, puede llamar a Start la Process propia clase y se crea un nuevo Process componente si se inició el proceso. O bien, null se devuelve si se ha reutilizado un proceso. El recurso de proceso se asocia automáticamente al nuevo Process componente devuelto por el Start método .

Los StartInfo miembros se pueden usar para duplicar la funcionalidad del cuadro de Run diálogo del menú De Windows Start . Cualquier cosa que se pueda escribir en una línea de comandos se puede iniciar estableciendo los valores adecuados en la StartInfo propiedad . La única StartInfo propiedad que se debe establecer es la FileName propiedad . La FileName propiedad no tiene que ser un archivo ejecutable. Puede ser de cualquier tipo de archivo para el que la extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, la FileName propiedad puede tener una extensión .txt si tiene archivos de texto asociados con un editor, como el Bloc de notas, o puede tener una extensión de .doc si ha asociado .doc archivos con una herramienta de procesamiento de texto, como Microsoft Word.

En la línea de comandos, puede especificar las acciones que se deben realizar para determinados tipos de archivos. Por ejemplo, puede imprimir documentos o editar archivos de texto. Especifique estas acciones mediante el Verb miembro de la StartInfo propiedad . Para otros tipos de archivos, puede especificar argumentos de línea de comandos al iniciar el archivo desde el Run cuadro de diálogo. Por ejemplo, puede pasar una dirección URL como argumento si especifica el explorador como FileName. Estos argumentos se pueden especificar en el miembro de Arguments la StartInfo propiedad.

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar completamente esa ruta de acceso al iniciar cualquier proceso que se encuentre en esa ubicación. De lo contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso y lo agrega con comillas: path = %path%;"c:\mypath", debe calificar completamente cualquier proceso en c:\mypath al iniciarlo.

Nota

ASP.NET código de control de servidor y página web se ejecuta en el contexto del proceso de trabajo de ASP.NET en el servidor web. Si usa el Start método en un control de servidor o página web de ASP.NET, el nuevo proceso se ejecuta en el servidor web con permisos restringidos. El proceso no se inicia en el mismo contexto que el explorador cliente y no tiene acceso al escritorio del usuario.

Siempre que use Start para iniciar un proceso, es posible que tenga que cerrarlo o arriesgarse a perder recursos del sistema. Cierre los procesos mediante CloseMainWindow o Kill. Puede comprobar si ya se ha cerrado un proceso mediante su HasExited propiedad .

Aquí es necesario tener en cuenta los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se encuentra true en la propiedad del componente de StartInfo proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el main() método . De lo contrario, un subproceso administrado puede estar en un unknown estado o colocarlo, el último de los cuales entra en MTA conflicto con UseShellExecute ser true. Algunos métodos requieren que el estado del apartamento no sea unknown. Si el estado no se establece explícitamente, cuando la aplicación encuentra este método, el valor predeterminado es MTAy, una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.

Consulte también

Se aplica a

Start(String, IEnumerable<String>)

Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos.

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

Nombre de un archivo de documento o aplicación que se va a ejecutar en el proceso.

arguments
IEnumerable<String>

Argumentos de línea de comandos que se van a pasar al iniciar el proceso.

Devoluciones

Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso.

Atributos

Comentarios

Cada argumento se escapará automáticamente si es necesario.

Se aplica a