C# app running as either Windows Form or as Console Application
Posted
by Aeolien
on Stack Overflow
See other posts from Stack Overflow
or by Aeolien
Published on 2010-05-11T19:47:09Z
Indexed on
2010/05/11
19:54 UTC
Read the original article
Hit count: 241
I am looking to have one of my Windows Forms applications be run programmatically—from the command line. In preparation, I have separated the logic in its own class from the Form. Now I am stuck trying to get the application to switch back and forth based on the presence of command line arguments.
Here is the code for the main class:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1) // gets passed its path, by default
{
CommandLineWork(args);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static void CommandLineWork(string[] args)
{
Console.WriteLine("It works!");
Console.ReadLine();
}
where Form1
is my form and the It works!
string is just a placeholder for the actual logic.
Right now, when running this from within Visual Studio (with command line arguments), the phrase It works!
is printed to the Output. However, when running the /bin/Debug/Program.exe file (or /Release for that matter) the application crashes.
Am I going about this the right way? Would it make more sense (i.e. take less developer time) to have my logic class be a DLL that gets loaded by two separate applications? Or is there something entirely different that I'm not aware of?
Thanks in advance!
© Stack Overflow or respective owner