Evaluar y enviar comentarios
MSDN
MSDN Library
 StartInfo (Propiedad)
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.StartInfo (Propiedad)

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

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

Visual Basic (Declaración)
Public Property StartInfo As ProcessStartInfo
Visual Basic (Uso)
Dim instance As Process
Dim value As ProcessStartInfo

value = instance.StartInfo

instance.StartInfo = value
C#
public ProcessStartInfo StartInfo { get; set; }
C++
public:
property ProcessStartInfo^ StartInfo {
    ProcessStartInfo^ get ();
    void set (ProcessStartInfo^ value);
}
J#
/** @property */
public ProcessStartInfo get_StartInfo ()

/** @property */
public void set_StartInfo (ProcessStartInfo value)
JScript
public function get StartInfo () : ProcessStartInfo

public function set StartInfo (value : 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 utilizó para iniciar el proceso.
Tipo de excepciónCondición

ArgumentNullException

El valor especificado por la propiedad StartInfo es referencia de objeto null (Nothing en Visual Basic).

StartInfo representa el conjunto de parámetros que se van a utilizar para iniciar un proceso. Cuando se llama a Start, se utiliza la propiedad StartInfo para especificar el proceso que se va a iniciar. El único miembro de StartInfo que se debe establecer es la propiedad FileName. Iniciar un proceso especificando el valor de la propiedad FileName es similar a escribir la información en el cuadro de diálogo Ejecutar del menú Inicio de Windows. Por tanto, no es necesario que la propiedad FileName 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, FileName 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 Ejecutar acepta nombres de archivos ejecutables con y sin extensión .exe, la extensión .exe es opcional en el miembro de FileName. Por ejemplo, es posible establecer la propiedad FileName en "Notepad.exe" o en "Notepad".

Si el nombre de archivo representa un archivo no ejecutable, como por ejemplo un archivo .doc, puede incluirse un verbo que especifique la acción que debe realizarse en el archivo. Por ejemplo, podría establecer la propiedad Verb en "Print" para un archivo que termine con la extensión .doc. El nombre de archivo especificado en la propiedad FileName no requiere una extensión si se especifica manualmente un valor para la propiedad Verb. Sin embargo, si la propiedad Verbs se utiliza para determinar los verbos que están disponibles, debe incluirse la extensión.

Se pueden cambiar los parámetros especificados en la propiedad StartInfo hasta que se llama al método Start en el proceso. Después de iniciarse el proceso, la modificación de los valores de StartInfo no afecta ni reinicia el proceso asociado. Cuando se llama al método Start(ProcessStartInfo) teniendo establecidas las propiedades ProcessStartInfo.UserName y ProcessStartInfo.Password, se invoca 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.

Si no se ha utilizado el método Start para iniciar un proceso, la propiedad StartInfo no refleja los parámetros utilizados para iniciar el proceso. Por ejemplo, si se utiliza GetProcesses para obtener una matriz de procesos que se ejecutan en el equipo, la propiedad StartInfo de cada Process no contiene el nombre del archivo original ni los argumentos utilizados para iniciar el proceso.

Cuando se inicia el proceso, el nombre de archivo es el archivo en el que se establece la propiedad MainModule (de sólo lectura). Si desea recuperar el archivo ejecutable que está asociado al proceso una vez que el proceso se haya iniciado, utilice la propiedad MainModule. Si desea establecer el archivo ejecutable de una instancia de Process para la que no se ha iniciado un proceso asociado, utilice el miembro FileName de la propiedad StartInfo. Como los miembros de la propiedad StartInfo son los argumentos que se pasan al método Start de un proceso, si se cambia la propiedad FileName después de que se haya iniciado el proceso asociado, la propiedad MainModule no se restablecerá. Estas propiedades sólo se utilizan para inicializar el proceso asociado.

En el siguiente ejemplo, se rellena una propiedad StartInfo con el archivo que debe ejecutarse, la acción realizada sobre el mismo y si debe mostrar o no una interfaz de usuario.

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


Namespace MyProcessSample
    _
   '/ <summary>
   '/ Shell for the sample.
   '/ </summary>
   Class MyProcess
      ' These are the Win32 error code for file not found or access denied.
      Private ERROR_FILE_NOT_FOUND As Integer = 2
      Private ERROR_ACCESS_DENIED As Integer = 5
      
      
      '/ <summary>
      '/ Prints a file with a .doc extension.
      '/ </summary>
      Sub PrintDoc()
         Dim myProcess As New Process()
         
         Try
            ' Get the path that stores user documents.
            Dim myDocumentsPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
            
            myProcess.StartInfo.FileName = myDocumentsPath + "\MyFile.doc"
            myProcess.StartInfo.Verb = "Print"
            myProcess.StartInfo.CreateNoWindow = True
            myProcess.Start()
         Catch e As Win32Exception
            If e.NativeErrorCode = ERROR_FILE_NOT_FOUND Then
               Console.WriteLine((e.Message + ". Check the path."))
            
            Else
               If e.NativeErrorCode = ERROR_ACCESS_DENIED Then
                  ' Note that if your word processor might generate exceptions
                  ' such as this, which are handled first.
                  Console.WriteLine((e.Message + ". You do not have permission to print this file."))
               End If
            End If
         End Try
      End Sub 'PrintDoc
      
      
      Public Shared Sub Main()
         Dim myProcess As New MyProcess()
         myProcess.PrintDoc()
      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
    {
        // These are the Win32 error code for file not found or access denied.
        const int ERROR_FILE_NOT_FOUND =2;
        const int ERROR_ACCESS_DENIED = 5;

        /// <summary>
        /// Prints a file with a .doc extension.
        /// </summary>
        void PrintDoc()
        {
            Process myProcess = new Process();
            
            try
            {
                // Get the path that stores user documents.
                string myDocumentsPath = 
                    Environment.GetFolderPath(Environment.SpecialFolder.Personal);

                myProcess.StartInfo.FileName = myDocumentsPath + "\\MyFile.doc"; 
                myProcess.StartInfo.Verb = "Print";
                myProcess.StartInfo.CreateNoWindow = true;
                myProcess.Start();
            }
            catch (Win32Exception e)
            {
                if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND)
                {
                    Console.WriteLine(e.Message + ". Check the path.");
                } 

                else if (e.NativeErrorCode == ERROR_ACCESS_DENIED)
                {
                    // Note that if your word processor might generate exceptions
                    // such as this, which are handled first.
                    Console.WriteLine(e.Message + 
                        ". You do not have permission to print this file.");
                }
            }
        }


        public static void Main()
        {
            MyProcess myProcess = new MyProcess();
            myProcess.PrintDoc();
        }
    }
}
C++
#using <System.dll>

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

// These are the Win32 error code for file not found or access denied.
#define ERROR_FILE_NOT_FOUND 2
#define ERROR_ACCESS_DENIED  5
int main()
{
   Process^ myProcess = gcnew Process;
   try
   {
      
      // Get the path that stores user documents.
      String^ myDocumentsPath = Environment::GetFolderPath( Environment::SpecialFolder::Personal );
      myProcess->StartInfo->FileName = String::Concat( myDocumentsPath, "\\MyFile.doc" );
      myProcess->StartInfo->Verb = "Print";
      myProcess->StartInfo->CreateNoWindow = true;
      myProcess->Start();
   }
   catch ( Win32Exception^ e ) 
   {
      if ( e->NativeErrorCode == ERROR_FILE_NOT_FOUND )
      {
         Console::WriteLine( "{0}. Check the path.", e->Message );
      }
      else
      if ( e->NativeErrorCode == ERROR_ACCESS_DENIED )
      {
         
         // Note that if your word processor might generate exceptions
         // such as this, which are handled first.
         Console::WriteLine( "{0}. You do not have permission to print this file.", e->Message );
      }
   }

}

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, 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