2009-10-05 17 views

Respuesta

27

Si cambia esta configuración predeterminada principal firma:

[STAThread] 
static void Main() 

A esto:

[STAThread] 
static void Main(String[] args) 

Se puede acceder a las variables de comandos como si se tratara de una aplicación normal de la consola, o si desea acceder a ellos desde otro lugar, puede utilizar:

System.Environment.GetCommandLineArgs(); 
+0

Hah, ese primer método es el que usé en una explicación a un amigo hace un tiempo. +1 – Kawa

2

Sí, debería funcionar para crear el proyecto como un proyecto de aplicación de Windows normal. Luego, en program.cs antes de iniciar la ventana, llama al Environment.GetCommandLineArgs() para obtener los argumentos de la línea de comando y analizarlos para que hagan lo que quieras.

8
[STAThread] 
static void Main(string[] args) 
{ 
    if (args.Length == 0) 
    { 
     // Run the application in a windows form 
     Application.Run(new MainForm()); 
    } 
    else 
    { 
     // Run app from CLI 
     Console.WriteLine(DoStuff(args)); 
    } 
}
+1

+1 para responder la segunda parte de la pregunta. Se está perdiendo un corchete al final de WriteLine (. Además, no creo que pueda escribir en la consola de esa manera en una aplicación de formulario de Windows. –

+0

Tiene razón en que no puede Console.WriteLine en una aplicación de Winforms. de mi respuesta es que no necesita crear una aplicación de Windforms, puede crear un solo ejecutable que se ejecutará como un formulario o línea de comando dependiendo de cómo se invoque. –

+0

Acabo de probar esto y no hay una ventana de comando abierta para el texto , Creo que falta un comando para iniciar la ventana comamndline. –

Cuestiones relacionadas