Search code examples
c#.netconsoleconsole-application

Show/Hide the console window of a C# console application


I googled around for information on how to hide one’s own console window. Amazingly, the only solutions I could find were hacky solutions that involved FindWindow() to find the console window by its title. I dug a bit deeper into the Windows API and found that there is a much better and easier way, so I wanted to post it here for others to find.

How do you hide (and show) the console window associated with my own C# console application?


Solution

  • Here’s how:

    using System.Runtime.InteropServices;
    

    [DllImport("kernel32.dll")]
    static extern IntPtr GetConsoleWindow();
    
    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    
    const int SW_HIDE = 0;
    const int SW_SHOW = 5;
    

    var handle = GetConsoleWindow();
    
    // Hide
    ShowWindow(handle, SW_HIDE);
    
    // Show
    ShowWindow(handle, SW_SHOW);