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)

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

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

public bool Start()

Valor devuelto

Tipo: System.Boolean
Es true si se inicia un recurso de proceso; es false si no se inicia ningún recurso de proceso nuevo (por ejemplo, si se reutiliza un recurso existente).

ExcepciónCondición
InvalidOperationException

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

O bien

El miembro ProcessStartInfo.UseShellExecute de la propiedad StartInfo es true mientras ProcessStartInfo.RedirectStandardInput, ProcessStartInfo.RedirectStandardOutput o ProcessStartInfo.RedirectStandardError sea true.

Win32Exception

Se produjo un error al abrir el archivo asociado.

ObjectDisposedException

El objeto de proceso ya se ha desechado.

Hay que utilizar esta sobrecarga para iniciar un recurso de proceso y asociarlo al componente Process actual. Si se devuelve el valor true, significa que se inició un nuevo recurso de proceso. Si el recurso de proceso especificado mediante el miembro FileName de la propiedad StartInfo ya se está ejecutando en el equipo, no se inicia ningún recurso de proceso adicional, sino que 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 de instalación en la unidad de disco duro.

NotaNota

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

Esta sobrecarga de Start no es un método static. Hay que llamarlo desde una instancia de la clase Process. Antes de llamar al método Start, primero hay que especificar la información de la propiedad StartInfo para esta instancia de Process, porque dicha información se utiliza para determinar el recurso de proceso que se debe 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, se puede llamar al método Start para la propia clase Process, y se creará un nuevo componente Process si se inició el proceso. O bien, se devolverá null si se reutilizó el proceso. El recurso del proceso se asocia automáticamente al nuevo componente Process devuelto por el método Start.

Es posible utilizar los miembros de StartInfo para duplicar la funcionalidad del cuadro de diálogo Run del menú Start de Windows. Todo aquello que se pueda escribir en una línea de comandos, puede iniciarse mediante el establecimiento de los valores correspondientes de la propiedad StartInfo. La única propiedad de StartInfo que se debe establecer es la propiedad FileName. No es necesario que el valor de la propiedad FileName sea 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, la propiedad FileName puede tener la extensión .txt si se han asociado archivos de texto a un editor, como Bloc de notas, o puede tener la extensión .doc si se han asociado archivos .doc a un procesador de texto, como Microsoft Word.

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

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 se utiliza una instancia de la clase Process para iniciar un proceso.


using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            Process myProcess = new 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 is 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);
            }
        }
    }
}


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

date

Historial

Motivo

Diciembre de 2010

Errata corregida.

Comentarios de los clientes.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft