Process.StartInfo Propiedad

Definición

Obtiene o establece las propiedades que se pasan al método Start() de Process.

public:
 property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo

Valor de propiedad

ProcessStartInfo que representa los datos con los que iniciar el proceso. Estos argumentos incluyen el nombre del archivo ejecutable o del documento que se usó para iniciar el proceso.

Atributos

Excepciones

El valor que especifica el StartInfo es null.

Solo .NET Core y .NET 5+: el Start() método no se usó para iniciar el proceso.

Ejemplos

En el ejemplo siguiente se rellena un StartInfo elemento con el archivo que se va a ejecutar, la acción realizada en él y si debe mostrar una interfaz de usuario. Para obtener ejemplos adicionales, consulte las páginas de referencia de las propiedades de la ProcessStartInfo clase .

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

StartInfo representa el conjunto de parámetros que se van a usar para iniciar un proceso. Cuando Start se llama a , StartInfo se usa para especificar el proceso que se va a iniciar. El único miembro necesario StartInfo que se va a establecer es la FileName propiedad . Iniciar un proceso especificando la FileName propiedad es similar a escribir la información en el cuadro de diálogo Ejecutar del menú Inicio de Windows. Por lo tanto, la FileName propiedad 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 ejemploFileName, puede tener una extensión de .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 Ejecutar puede aceptar un nombre de archivo ejecutable con o sin la extensión .exe, la extensión .exe es opcional en el FileName miembro. Por ejemplo, puede establecer la FileName propiedad en "Notepad.exe" o "Bloc de notas".

Puede iniciar una aplicación ClickOnce estableciendo la FileName propiedad 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.

Si el nombre de archivo implica un archivo que no se puede procesar, como un archivo .doc, puede incluir un verbo que especifique qué acción realizar en el archivo. Por ejemplo, podría establecer en Verb "Imprimir" para un archivo que termine en la extensión .doc. El nombre de archivo especificado en la FileName propiedad no necesita tener una extensión si escribe manualmente un valor para la Verb propiedad. Sin embargo, si usa la Verbs propiedad para determinar qué verbos están disponibles, debe incluir la extensión.

Puede cambiar los parámetros especificados en la StartInfo propiedad hasta el momento en que se llama al Start método en el proceso. Después de iniciar el proceso, cambiar los StartInfo valores no afecta ni reinicia el proceso asociado. Si llama al Start(ProcessStartInfo) método con las ProcessStartInfo.UserName propiedades y ProcessStartInfo.Password establecidas, se llama a la función no administrada CreateProcessWithLogonW , que inicia el proceso en una nueva ventana incluso si el CreateNoWindow valor de propiedad es true o el valor de propiedad WindowStyle es Hidden.

Solo debe tener acceso a la StartInfo propiedad en un Process objeto devuelto por el Start método . Por ejemplo, no debe tener acceso a la StartInfo propiedad en un Process objeto devuelto por GetProcesses. De lo contrario, en .NET Core, la StartInfo propiedad iniciará y InvalidOperationException en .NET Framework devolverá un objeto ficticio ProcessStartInfo .

Cuando se inicia el proceso, el nombre de archivo es el archivo que rellena la propiedad (de solo lectura). MainModule Si desea recuperar el archivo ejecutable asociado al proceso una vez iniciado el proceso, use la MainModule propiedad . Si desea establecer el archivo ejecutable de una Process instancia para la que no se ha iniciado un proceso asociado, use el miembro de FileName la StartInfo propiedad. Dado que los miembros de la StartInfo propiedad son argumentos que se pasan al Start método de un proceso, cambiar la FileName propiedad después de que se haya iniciado el proceso asociado no restablecerá la MainModule propiedad. Estas propiedades solo se usan para inicializar el proceso asociado.

Se aplica a

Consulte también