Maximizing console window - C#

2019-03-24 10:49发布

I'm working on a console application on C# and I need to open the console maximized. When I just hit the maximize button on the console window, it maximizes only on height and not in width. I tried to use the following code :

   Console.WindowWidth = 150;
   Console.WindowHeight = 61;

Which works almost as I want on my computer but gives error on some other computers. What should I do to maximize the console?

2条回答
Fickle 薄情
2楼-- · 2019-03-24 11:30

Can't with the CLR. Need to import Win32 API calls and poke your container window. The following might help.

using System.Diagnostics;
using System.Runtime.InteropServices;

[DllImport("user32.dll")]
public static extern bool ShowWindow(System.IntPtr hWnd, int cmdShow);

private static void Maximize()
{
    Process p = Process.GetCurrentProcess();
    ShowWindow(p.MainWindowHandle, 3); //SW_MAXIMIZE = 3
}
查看更多
神经病院院长
3楼-- · 2019-03-24 11:47
    [DllImport("kernel32.dll", ExactSpelling = true)]

    private static extern IntPtr GetConsoleWindow();
    private static IntPtr ThisConsole = GetConsoleWindow();

    [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]

    private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    private const int HIDE = 0;
    private const int MAXIMIZE = 3;
    private const int MINIMIZE = 6;
    private const int RESTORE = 9;


    static void Main(string[] args)
    {
       ShowWindow(ThisConsole, MINIMIZE);
    }
查看更多
登录 后发表回答