Evaluar y enviar comentarios
MSDN
MSDN Library
 Start (Método) (ProcessStartInfo)
Contraer todo/Expandir todo Contraer todo
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Biblioteca de clases de .NET Framework
Process.Start (Método) (ProcessStartInfo)

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

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

Visual Basic (Declaración)
Public Shared Function Start ( _
    startInfo As ProcessStartInfo _
) As Process
Visual Basic (Uso)
Dim startInfo As ProcessStartInfo
Dim returnValue As Process

returnValue = Process.Start(startInfo)
C#
public static Process Start (
    ProcessStartInfo startInfo
)
C++
public:
static Process^ Start (
    ProcessStartInfo^ startInfo
)
J#
public static Process Start (
    ProcessStartInfo startInfo
)
JScript
public static function Start (
    startInfo : ProcessStartInfo
) : Process

Parámetros

startInfo

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

Valor devuelto

Nuevo componente Process que se asocia al recurso del proceso o referencia de objeto null (Nothing en Visual Basic) si no se inicia ningún recurso de proceso (por ejemplo, si se reutiliza un proceso existente).
Tipo de excepciónCondición

InvalidOperationException

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

O bien

El valor de la propiedad UseShellExecute del parámetro startInfo es true y el valor de la propiedad RedirectStandardInput, RedirectStandardOutput o RedirectStandardError también es true.

O bien,

El valor de la propiedad UseShellExecute del parámetro startInfo es true y el valor de la propiedad UserName no es referencia de objeto null (Nothing en Visual Basic), ni una cadena vacía, o el valor de la propiedad Password no es referencia de objeto null (Nothing en Visual Basic).

ArgumentException

El valor del parámetro startInfo es referencia de objeto null (Nothing en Visual Basic).

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 mediante la especificación de una instancia de ProcessStartInfo. La sobrecarga asocia el recurso a un nuevo componente Process. Si el proceso ya está en ejecución, no se iniciará ningún recurso de 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 referencia de objeto null (Nothing en Visual Basic) al procedimiento que realiza la llamada.

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

El uso de una instancia de ProcessStartInfo como parámetro permite llamar al método Start con el mayor control sobre lo que se pasa a la llamada para iniciar el proceso. Si sólo se 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 de StartInfo que se debe establecer es la propiedad FileName. No es necesario que la propiedad FileName represente a 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. Si se han establecido las propiedades UserName y Password de la instancia de StartInfo, se llama a la función no administrada CreateProcessWithLogonW, que comienza el proceso en una nueva ventana incluso cuando el valor de la propiedad CreateNoWindow es true o si el valor de la propiedad WindowStyle es Hidden.

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 la información de inicio para el recurso del proceso mediante una instancia de ProcessStartInfo.

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 el parámetro startInfo, hay que asegurarse de que se ha establecido un modelo de subprocesos en la aplicación estableciendo el valor 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 realiza un desplazamiento hasta un sitio específico.

Visual Basic
Imports System
Imports System.Diagnostics
Imports System.ComponentModel


Namespace MyProcessSample
    _
   '/ <summary>
   '/ Shell for the sample.
   '/ </summary>
   Class MyProcess 
      '/ <summary>
      '/ Opens the Internet Explorer application.
      '/ </summary>
      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 'OpenApplication
       
      
      '/ <summary>
      '/ Opens urls and .html documents using Internet Explorer.
      '/ </summary>
      Sub 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")
      End Sub 'OpenWithArguments
      
      
      '/ <summary>
      '/ Uses the ProcessStartInfo class to start new processes, both in a minimized 
      '/ mode.
      '/ </summary>
      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 'OpenWithStartInfo
       
      
      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 'Main 
   End Class 'MyProcess
End Namespace 'MyProcessSample
C#
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    /// <summary>
    /// Shell for the sample.
    /// </summary>
    class MyProcess
    {
       
        /// <summary>
        /// Opens the Internet Explorer application.
        /// </summary>
        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);
 
        }
        
        /// <summary>
        /// Opens urls and .html documents using Internet Explorer.
        /// </summary>
        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");
        }
        
        /// <summary>
        /// Uses the ProcessStartInfo class to start new processes, both in a minimized 
        /// mode.
        /// </summary>
        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();

               }    
    }
}
C++
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

/// <summary>
/// Opens the Internet Explorer application.
/// </summary>
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 );
}


/// <summary>
/// Opens urls and .html documents using Internet Explorer.
/// </summary>
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" );
}


/// <summary>
/// Uses the ProcessStartInfo class to start new processes, both in a minimized 
/// mode.
/// </summary>
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();
}

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0
Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker