Compartir vía


Process.Start Método

Definición

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

Sobrecargas

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

Inicia un recurso de proceso especificando el nombre de una aplicación, 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 especificando el 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 especificando el nombre de una aplicación y un conjunto de argumentos de línea de comandos y asocia el recurso a un nuevo componente de Process.

Start(String)

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

Start(ProcessStartInfo)

Inicia el recurso de proceso especificado por el parámetro que contiene 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 de Process.

Start()

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

Start(String, IEnumerable<String>)

Inicia un recurso de proceso especificando el nombre de una aplicación y un conjunto de argumentos de línea de comandos.

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

Source:
Process.Unix.cs
Source:
Process.Unix.cs
Source:
Process.Unix.cs

Importante

Esta API no es conforme a CLS.

Inicia un recurso de proceso especificando el nombre de una aplicación, 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 iniciar el proceso.

password
SecureString

Un SecureString que contiene la contraseña que se va a usar al iniciar el proceso.

domain
String

Dominio que se va a usar al iniciar el proceso.

Devoluciones

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un nuevo proceso que se inicia junto con instancias ya en ejecución del mismo proceso será independiente de los demás. Además, Start puede devolver un proceso que no sea NULL con su propiedad HasExited ya establecida en true. En este caso, el proceso iniciado puede haber activado una instancia existente de sí misma y luego salir.

Atributos

Excepciones

No se especificó ningún nombre de archivo.

Error al abrir el archivo asociado.

-o-

No se encontró el archivo especificado en el fileName.

-o-

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 "Acceso denegado".

El objeto de proceso ya se ha eliminado.

Este miembro no se admite en Linux o macOS (solo .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).

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

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 se devuelve null.

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

Del mismo modo, 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 parámetro . Por ejemplo, puede establecer el parámetro fileName en "Notepad.exe" o "Bloc de notas". Si el parámetro fileName representa un archivo ejecutable, el parámetro arguments 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 sobrecargas de Start que tienen parámetros userName, passwordy domain.

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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Se aplica a

Start(String, String, SecureString, String)

Source:
Process.Unix.cs
Source:
Process.Unix.cs
Source:
Process.Unix.cs

Importante

Esta API no es conforme a CLS.

Inicia un recurso de proceso especificando el 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 iniciar el proceso.

password
SecureString

Un SecureString que contiene la contraseña que se va a usar al iniciar el proceso.

domain
String

Dominio que se va a usar al iniciar el proceso.

Devoluciones

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un nuevo proceso que se inicia junto con instancias ya en ejecución del mismo proceso será independiente de los demás. Además, Start puede devolver un proceso que no sea NULL con su propiedad HasExited ya establecida en true. En este caso, el proceso iniciado puede haber activado una instancia existente de sí misma y luego salir.

Atributos

Excepciones

No se especificó ningún nombre de archivo.

Error al abrir el archivo asociado.

-o-

No se encontró el archivo especificado en el fileName.

El objeto de proceso ya se ha eliminado.

Este miembro no se admite en Linux o macOS (solo .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 cuando se intenta iniciar una aplicación asociada a un archivo no modificable.

// 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();
        }
    }
}
// NOTE: This example requires a text.txt file file in your Documents folder
open System
open System.Diagnostics
open System.Security
open System.ComponentModel

printf "Enter your domain: "
let domain = stdin.ReadLine()
printf "Enter you user name: "
let uname = stdin.ReadLine()
printf "Enter your password: "
let password = new SecureString()

let mutable key = Console.ReadKey(true)

while key.Key <> ConsoleKey.Enter do
    // Ignore any key out of range.
    if int key.Key >= 33 && int key.Key <= 90 && key.Key <> ConsoleKey.Enter then
        // Append the character to the password.
        password.AppendChar key.KeyChar
        Console.Write "*"

    key <- Console.ReadKey(true)

printfn ""

try
    printfn "\nTrying to launch NotePad using your login information..."
    Process.Start("notepad.exe", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

let path = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + @"\"

try
    // The following call to Start succeeds if test.txt exists.
    printfn "\nTrying to launch 'text.txt'..."
    Process.Start $"{path}text.txt" |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

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.
        printfn "\nTrying to launch 'text.txt' with your login information..."
        Process.Start($"{path}text.txt", uname, password, domain) |> ignore
    with :? Win32Exception as ex ->
        printfn $"{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).

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

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 se devuelve null.

Esta sobrecarga le permite iniciar un proceso sin crear primero una nueva instancia de Process. La sobrecarga es una alternativa a los pasos explícitos de creación de una nueva instancia de Process, estableciendo las propiedades FileName, UserName, Passwordy Domain de la propiedad StartInfo y llamando a Start para la instancia de Process.

Del mismo modo, 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 parámetro . Por ejemplo, puede establecer el parámetro fileName en "Notepad.exe" o "Bloc de notas". Si el parámetro fileName representa un archivo ejecutable, el parámetro arguments 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 sobrecargas de Start que tienen parámetros userName, passwordy domain.

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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Se aplica a

Start(String, String)

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

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

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un nuevo proceso que se inicia junto con instancias ya en ejecución del mismo proceso será independiente de los demás. Además, Start puede devolver un proceso que no sea NULL con su propiedad HasExited ya establecida en true. En este caso, el proceso iniciado puede haber activado una instancia existente de sí misma y luego salir.

Atributos

Excepciones

El parámetro fileName o arguments es null.

Error al abrir el archivo asociado.

-o-

No se encontró el archivo especificado en el fileName.

-o-

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 "Acceso denegado".

El objeto de proceso ya se ha eliminado.

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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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 objeto Process.

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Nota

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

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

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 cuadro de diálogo Run 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 cuadro de diálogo de Run puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el parámetro fileName. Por ejemplo, puede establecer el parámetro fileName en "Notepad.exe" o "Bloc de notas". Si el parámetro fileName representa un archivo ejecutable, el parámetro arguments podría representar un archivo en el que actuar, como el archivo de texto de Notepad.exe myfile.txt. Si el parámetro fileName representa un archivo de comando (.cmd), el parámetro arguments debe incluir un argumento "/c" o "/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 un miembro static. Use esa sobrecarga cuando ya haya creado una instancia de Process y especifique información de inicio (incluido el nombre del archivo) y quiera iniciar un recurso de proceso y asociarlo a la instancia de Process existente. Use una de las sobrecargas de static cuando desee crear un nuevo componente de Process en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros le 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 calificar por completo 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 método Start 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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Aquí se necesita una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se true en la propiedad StartInfo del componente de proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el método main(). De lo contrario, un subproceso administrado puede estar en un estado unknown o colocarlo en el estado MTA, el último de los cuales entra en conflicto con UseShellExecute que se 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)

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

Inicia un recurso de proceso especificando el nombre de un archivo de documento o aplicación y asocia el recurso a un nuevo componente de 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 documento o archivo de aplicación que se va a ejecutar en el proceso.

Devoluciones

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un nuevo proceso que se inicia junto con instancias ya en ejecución del mismo proceso será independiente de los demás. Además, Start puede devolver un proceso que no sea NULL con su propiedad HasExited ya establecida en true. En este caso, el proceso iniciado puede haber activado una instancia existente de sí misma y luego salir.

Atributos

Excepciones

Error al abrir el archivo asociado.

-o-

No se encontró el archivo especificado en el fileName.

El objeto de proceso ya se ha eliminado.

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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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 objeto Process.

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Nota

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

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

Puede iniciar una aplicación ClickOnce estableciendo el parámetro fileName 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 cuadro de diálogo Run 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 cuadro de diálogo de Run puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el parámetro fileName. Por ejemplo, puede establecer el parámetro fileName 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 sobrecargas de Process.Start(ProcessStartInfo) o Process.Start(String, String).

A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es un miembro static. Use esa sobrecarga cuando ya haya creado una instancia de Process y especifique información de inicio (incluido el nombre del archivo) y quiera iniciar un recurso de proceso y asociarlo a la instancia de Process existente. Use una de las sobrecargas de static cuando desee crear un nuevo componente de Process en lugar de iniciar un proceso para un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros le 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 calificar por completo 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 método Start 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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Aquí se necesita una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se true en la propiedad StartInfo del componente de proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el método main(). De lo contrario, un subproceso administrado puede estar en un estado unknown o colocarlo en el estado MTA, el último de los cuales entra en conflicto con UseShellExecute que se 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)

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

Inicia el recurso de proceso especificado por el parámetro que contiene 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 de 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

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

Devoluciones

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un nuevo proceso que se inicia junto con instancias ya en ejecución del mismo proceso será independiente de los demás. Además, Start puede devolver un proceso que no sea NULL con su propiedad HasExited ya establecida en true. En este caso, el proceso iniciado puede haber activado una instancia existente de sí misma y luego salir.

Atributos

Excepciones

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

-o-

La propiedad UseShellExecute del parámetro startInfo es true y la propiedad RedirectStandardInput, RedirectStandardOutputo RedirectStandardError también es true.

-o-

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

El parámetro startInfo es null.

El objeto de proceso ya se ha eliminado.

Error al abrir el archivo asociado.

-o-

No se encontró el archivo especificado en la propiedad FileName del parámetro startInfo.

-o-

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 "Acceso denegado".

El método no se admite en sistemas operativos sin compatibilidad con shell, como Nano Server (solo .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 clase ProcessStartInfo.

#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();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore

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

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
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 instancia de ProcessStartInfo. La sobrecarga asocia el recurso a un nuevo objeto Process.

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Nota

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

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

El uso de una instancia de ProcessStartInfo como parámetro le permite llamar a 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 instancia de ProcessStartInfo, aunque es una opción. La única propiedad Process.StartInfo que se debe establecer es la propiedad FileName. La propiedad FileName 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 propiedad FileName puede tener una extensión .txt si ha asociado archivos de texto a un editor, como el Bloc de notas, o puede tener una extensión .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 propiedades ProcessStartInfo.UserName y ProcessStartInfo.Password de la instancia de StartInfo, se llama a la función CreateProcessWithLogonW no administrada, que inicia el proceso en una nueva ventana incluso si el valor de la propiedad ProcessStartInfo.CreateNoWindow es true o el valor de la propiedad ProcessStartInfo.WindowStyle es ProcessWindowStyle.Hidden. Si la propiedad ProcessStartInfo.Domain es null, la propiedad ProcessStartInfo.UserName debe estar en formato UPN, usuario@DNS_domain_name.

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

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar por completo 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 método Start 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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Aquí se necesita una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se true en el parámetro startInfo, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el método main(). De lo contrario, un subproceso administrado puede estar en un estado unknown o colocarlo en el estado MTA, el último de los cuales entra en conflicto con UseShellExecute que se 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()

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

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

true si se inicia un recurso de proceso; false si no se inicia ningún recurso de proceso nuevo (por ejemplo, si se reutiliza un proceso existente).

Atributos

Excepciones

No se especificó ningún nombre de archivo en el StartInfodel componente de Process .

-o-

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

Error al abrir el archivo asociado.

El objeto de proceso ya se ha eliminado.

El método no se admite en sistemas operativos sin compatibilidad con shell, como Nano Server (solo .NET Core).

Ejemplos

En el ejemplo siguiente se usa una instancia de la clase Process 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);
            }
        }
    }
}
open System.Diagnostics

try
    use myProcess = new Process()
    myProcess.StartInfo.UseShellExecute <- false
    // You can start any process, HelloWorld is a do-nothing example.
    myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
    myProcess.StartInfo.CreateNoWindow <- true
    myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
    printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

Comentarios

Use esta sobrecarga para iniciar un recurso de proceso y asociarlo al componente de Process actual. El valor devuelto true indica que se inició un nuevo recurso de proceso. Si el recurso de proceso especificado por el miembro FileName de la propiedad StartInfo 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 se devuelve false.

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.

Importante

El uso de una instancia de este objeto con datos que no son de confianza es un riesgo de seguridad. Use este objeto solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Nota

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

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

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

Los miembros de StartInfo se pueden usar para duplicar la funcionalidad del cuadro de diálogo Run del menú Start de Windows. Todo lo que se pueda escribir en una línea de comandos se puede iniciar estableciendo los valores adecuados en la propiedad StartInfo. La única propiedad StartInfo que se debe establecer es la propiedad FileName. La propiedad FileName 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 propiedad FileName puede tener una extensión .txt si ha asociado archivos de texto a un editor, como el Bloc de notas, o puede tener una extensión .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 miembro Verb de la propiedad StartInfo. Para otros tipos de archivos, puede especificar argumentos de línea de comandos al iniciar el archivo desde el cuadro de diálogo Run. Por ejemplo, puede pasar una dirección URL como argumento si especifica el explorador como FileName. Estos argumentos se pueden especificar en el miembro Arguments de la propiedad StartInfo.

Si tiene una variable de ruta de acceso declarada en el sistema con comillas, debe calificar por completo 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 método Start 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 un proceso ya se ha cerrado mediante su propiedad HasExited.

Aquí se necesita una nota sobre los estados de los apartamentos en subprocesos administrados. Cuando UseShellExecute se true en la propiedad StartInfo del componente de proceso, asegúrese de que ha establecido un modelo de subprocesos en la aplicación estableciendo el atributo [STAThread] en el método main(). De lo contrario, un subproceso administrado puede estar en un estado unknown o colocarlo en el estado MTA, el último de los cuales entra en conflicto con UseShellExecute que se 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>)

Source:
Process.cs
Source:
Process.cs
Source:
Process.cs

Inicia un recurso de proceso especificando el 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 documento o archivo de 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

Nuevo Process asociado al recurso de proceso o null si no se inicia ningún recurso de proceso.

Atributos

Comentarios

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

Importante

Llamar a este método con datos que no son de confianza es un riesgo de seguridad. Llame a este método solo con datos de confianza. Para obtener más información, vea Validar todas las entradas.

Se aplica a