Link to home
Start Free TrialLog in
Avatar of CipherIS
CipherISFlag for United States of America

asked on

C# ConsolApp opens new window

I'm working on a ConsoleApp.  Right now it's simple.  I will be adding functionality to it.  Write now I'm just passing some values to it and writing the results to the console.  I mostly work on winforms and web.

When I run the consoleapp it opens a new window.  Is there a way to run it and display the results on the same window without opening a new window?
Avatar of Ryan Chong
Ryan Chong
Flag of Singapore image

consider the Console App as a process flow, once it's executed completely, it will be closed. similarly, once you run it, it will open a new window as it's considered as a new process.
Avatar of CipherIS

ASKER

Is that how it is supposed to run?  Any way to get it to display in the same command window when I execute it?
Can you post the code you are using or if it is a small test project can you zip it up and post to a site where we can download it to see what is the issue? Thanks.
I haven't done much yet.  Just testing the consoleapp.  This is what I have right now.  I will expand on it but I want to make sure I'm getting the desired results first.

        public static void Main(string[] args)
        {
            for (int i = 0; i < args.Length; i++)
            {
                Console.WriteLine("{0}", args[i]);
            }

            Console.ReadKey(true);
        }

Open in new window

That should open the applications interface which is the console window and all of its output should be going to it.

So are you saying that you are running the command window, cmd.exe, and executing the ConsoleApplication from it and want to the results from the ConsoleApplication to show up on the command window without the ConsoleApplication showing itself?
ASKER CERTIFIED SOLUTION
Avatar of Fernando Soto
Fernando Soto
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
May be all you need to do is just create an infinite loop in your application?

namespace Looping_in_console
{
    class Program
    {
        static void Main(string[] args)
        {
            bool doContinue = true;
            while (doContinue)
            {
                // read input values
                string input = Console.ReadLine();
                // Do you processing and print results
                // On the next iteration you may continue
                Console.WriteLine("You typed '"+ input + "'");

                // To exit - type "exit", for example
                if (input.ToLower() == "exit")
                {
                    doContinue = false;
                    Console.WriteLine("Good bye!");
                    Console.ReadLine();
                }
            }
        }
    }
}

Open in new window

An infinite loop?
Hi CipherIS; did you try my last post?
Yes, it didn't work.  Still popped open another window.
Yes. I'm not quite getting your requirements. If you just need to run your application, enter your data, display results, and repeat it again and again without restarting your console application - you may use the approach I showed in my example. If you need something else - forget.
Can you post the steps you took to use the solution I posted, because if you used the /D switch it should not have opened a new window.
When I type
start /B AppName.exe ParamsHere

Open in new window

or
start /B /D "Directory Path Here" AppName.exe ParamsHere

Open in new window

They both start the app in a new window.
Here is the Microsoft documentation for the DOS command-line command [start] please note the /b switch. It does work like that on my system. I don't understand why it is not working that way on yours. Can you use lower case b in command line? Also what OS version are you using?
Windows 10
I also am using Windows 10 myself.