Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Process.Start (ProcessStartInfo)

 

Publicado: octubre de 2016

System_CAPS_noteNota

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

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.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)

public static Process Start(
	ProcessStartInfo startInfo
)

Parámetros

startInfo
Type: System.Diagnostics.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.

Valor devuelto

Type: System.Diagnostics.Process

Nuevo Process que está asociado al recurso del proceso, o null si no se inicia ningún recurso de proceso. Tenga en cuenta que un proceso nuevo que se inicie junto a instancias del mismo proceso ya en ejecución será independiente del resto. 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.

Exception Condition
InvalidOperationException

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.

ArgumentNullException

El parámetro startInfo es null.

ObjectDisposedException

El objeto del proceso ya se ha desechado.

FileNotFoundException

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

Win32Exception

Se produjo un error al abrir el archivo asociado.

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

Utilice esta sobrecarga para iniciar un recurso de proceso mediante la especificación de un ProcessStartInfo instancia. La sobrecarga asocia el recurso a un nuevo Process objeto.

System_CAPS_noteNota

Si la dirección del archivo ejecutable para iniciar es una dirección URL, no se ha iniciado el proceso y null se devuelve.

Esta sobrecarga permite iniciar un proceso sin crear primero un nuevo Process instancia. Utilice esta sobrecarga con un ProcessStartInfo parámetro es una alternativa a los pasos explícitos de crear un nuevo Process instancia, establecer su StartInfo propiedades y llamar al método Start para el Process instancia.

Con un ProcessStartInfo instancia como el parámetro le permite llamar a Start con el máximo control sobre lo que se pasa en la llamada para iniciar el proceso. Si tiene que pasar un nombre de archivo o un nombre de archivo y argumentos, no es necesario crear un nuevo ProcessStartInfo de instancia, aunque es posible. El único Process.StartInfo propiedad que se debe establecer es la FileName propiedad. El FileName propiedad no es necesario representar un archivo ejecutable. Puede ser de cualquier tipo de archivo cuya extensión se haya asociado con una aplicación que está instalada en el sistema. Por ejemplo, el FileName propiedad puede tener la extensión .txt si se han asociado los archivos de texto con un editor, como el Bloc de notas, o puede tener la extensión .doc si se han asociado los archivos con una herramienta de procesamiento de textos, como Microsoft Word.

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

Si el ProcessStartInfo.UserName y ProcessStartInfo.Password propiedades están establecidas, el no administrado CreateProcessWithLogonW se llama a función, que inicia el proceso en una nueva ventana aunque se utilicen los ProcessStartInfo.CreateNoWindow es el valor de la propiedad true o ProcessStartInfo.WindowStyle valor de propiedad es ProcessWindowStyle.Hidden. Si el ProcessStartInfo.Domain propiedad es null, ProcessStartInfo.UserName propiedad debe estar en formato de UPN, user@DNS_domain_name.

A diferencia de las otras sobrecargas, la sobrecarga de Start que no tiene parámetros no es un static miembro. Utilizar esta sobrecarga cuando ya haya creado un Process instancia, información de inicio especificada (incluido el nombre de archivo) y desea iniciar un recurso de proceso y asociar dicho plan existente Process instancia. Utilice uno de los static sobrecargas cuando desee crear un nuevo Process componente en lugar de iniciar un proceso para un componente existente. Esta sobrecarga y la sobrecarga que no tiene parámetros le permiten especificar la información de inicio para el recurso de proceso mediante el uso de un ProcessStartInfo instancia.

Si tiene una variable de ruta de acceso declarada en el sistema mediante comillas, debe iniciar cualquier proceso que se encuentra en esa ubicación de dicha ruta de acceso completos. En caso contrario, el sistema no encontrará la ruta de acceso. Por ejemplo, si c:\mypath no está en la ruta de acceso, y agregarlo mediante comillas: path = %path%;"c:\mypath", debe calificar totalmente cualquier proceso en c:\mypath al iniciarlo.

System_CAPS_noteNota

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

Siempre que use Start para iniciar un proceso, deberá cerrarla o se arriesga a perder recursos del sistema. Cerrar procesos utilizando CloseMainWindow o Kill. Puede comprobar si un proceso ya se ha cerrado mediante el uso de su HasExited propiedad.

Aquí es necesaria una nota sobre los Estados de apartamento de los subprocesos administrados. Cuando UseShellExecute es 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. En caso contrario, un subproceso administrado puede estar en un unknown estado o colocar en la MTA estado, que entra en conflicto con esta última UseShellExecute que se va a 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 detecta este tipo de método, el valor predeterminado es MTA, y una vez establecido, no se puede cambiar el estado del apartamento. Sin embargo, MTA produce una excepción que se produzca cuando el shell del sistema operativo administra el subproceso.

En primer lugar, en el ejemplo siguiente se genera una instancia de Internet Explorer y muestra el contenido de la carpeta Favoritos en el explorador. A continuación, se inician algunas otras instancias de Internet Explorer y se muestra algunas páginas o sitios específicos. Por último, inicia Internet Explorer con la ventana minimizada mientras se 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;
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();
        }
    }
}

LinkDemand

for full trust for the immediate caller. This member cannot be used by partially trusted code.

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: