Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Process.Start (Método) (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.

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

public static Process Start(
	string fileName,
	string arguments
)

Parámetros

fileName
Tipo: System.String
Nombre de un archivo de aplicación que se va a ejecutar en el proceso.
arguments
Tipo: System.String
Argumentos de línea de comandos que se van a pasar al iniciar el proceso.

Valor devuelto

Tipo: System.Diagnostics.Process
Nuevo componente Process que se asocia al proceso o null si no se inicia ningún recurso de proceso (por ejemplo, si se reutiliza un proceso existente).

ExcepciónCondición
InvalidOperationException

El parámetro fileName o arguments es null.

Win32Exception

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 en el proceso supera 2080. El mensaje de error asociado a esta excepción puede ser uno de los siguientes: "El área de datos pasada a una llamada al sistema es demasiado pequeña" o "Acceso denegado".

ObjectDisposedException

El objeto de proceso ya se ha desechado.

FileNotFoundException

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

Utilice esta sobrecarga para iniciar un recurso de proceso mediante la especificación de un nombre de archivo y argumentos de línea de comandos. La sobrecarga asocia el recurso a un nuevo componente Process. Si el proceso ya está en ejecución, no se iniciará ningún proceso adicional. En lugar de esto, se reutiliza el recurso de proceso existente y no se crea un nuevo componente Process. En tal caso, en lugar de devolver un nuevo componente Process, Start devuelve null al procedimiento que realiza la llamada.

NotaNota

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

Esta sobrecarga 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 al método Start para la instancia de Process.

Iniciar un proceso mediante la especificación del nombre de archivo y de los 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ú Start de Windows. Por lo tanto, no es necesario que el nombre de archivo represente un archivo ejecutable. Puede ser cualquier tipo de archivo cuya extensión se haya asociado a una aplicación instalada en el sistema. Por ejemplo, el nombre de archivo puede tener la extensión .txt si se han asociado los archivos de texto a un editor, como el Bloc de notas, o puede tener la extensión .doc si se han asociado los archivos .doc a un procesador de texto, como Microsoft Word. Como consecuencia, del mismo modo que el cuadro de diálogo Run acepta nombres de archivos ejecutables con y sin extensión .exe, la extensión .exe es opcional en el parámetro fileName. Por ejemplo, se puede establecer el parámetro fileName en "Notepad.exe" o "Notepad". Si el parámetro fileName representa un archivo ejecutable, el parámetro arguments podría representar un archivo sobre el que se va a actuar como, por ejemplo, el archivo de texto de Notepad.exe myfile.txt. Si el parámetro fileName representa un archivo de comandos (.cmd), el parámetro arguments debe incluir un argumento "/c" o "/k" para especificar si la ventana de comandos se cierra o permanece al finalizar.

A diferencia de las demás sobrecargas, la sobrecarga del método Start que no tiene parámetros no es un miembro static. Hay que utilizar esa sobrecarga cuando, después de haber creado una instancia de Process y especificado la información de inicio (incluido el nombre de archivo), se desee iniciar un recurso de proceso y asociarlo a la instancia de Process existente. Utilice una de las sobrecargas static cuando desee crear un nuevo componente Process en lugar de iniciar el proceso correspondiente a un componente existente. Tanto esta sobrecarga como la sobrecarga que no tiene parámetros permiten especificar el nombre de archivo del recurso del proceso que se debe iniciar y los argumentos de línea de comandos que se van a pasar.

Si dispone de una variable de ruta de acceso declarada en el sistema mediante comillas, debe especificar la ruta de acceso completa 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 la ruta c:\mypath no se encuentra en su ruta de acceso y la agrega utilizando comillas (path = %path%;"c:\mypath"), debe especificar el nombre completo de cualquier proceso que se encuentre en c:\mypath al iniciarlo.

NotaNota

La página Web ASP.NET y el código de control de servidor ejecuta el contexto del proceso de trabajo ASP.NET en el servidor Web. Si se utiliza el método Start 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 cliente y no tiene acceso al escritorio del usuario.

Siempre que se utilice Start para iniciar un proceso, sería conveniente cerrarlo y así no arriesgarse a perder recursos del sistema. Es posible cerrar procesos utilizando CloseMainWindow o Kill.

Llegados a este punto, es necesario citar los estados de tipo apartamento de los subprocesos administrados. Cuando el valor de UseShellExecute es true en la propiedad StartInfo del componente del proceso, hay que asegurarse de que se ha establecido un modelo de subprocesos en la aplicación mediante la configuración del atributo [STAThread] en el método main(). De lo contrario, un subproceso administrado puede encontrarse en estado unknown o entrar en estado MTA, siendo esto último incompatible con el hecho de que la propiedad UseShellExecute sea 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 un método de este tipo, utiliza MTA de manera predeterminada y, una vez establecido, el estado del apartamento no se puede cambiar. No obstante, MTA hace que se produzca una excepción cuando el shell del sistema operativo administra el subproceso.

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


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


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

  • LinkDemand 

    para plena confianza del llamador inmediato. Este miembro no puede ser utilizado por código de confianza parcial.

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft