web-dev-qa-db-ja.com

コンソールウィンドウの最大化-C#

C#でコンソールアプリケーションを使用していますが、コンソールを最大化して開く必要があります。コンソールウィンドウの最大化ボタンを押すと、高さのみが最大化され、幅は最大化されません。私は次のコードを使おうとしました:

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

これは私のコンピューターではほぼ期待どおりに機能しますが、他のいくつかのコンピューターではエラーが発生します。コンソールを最大化するにはどうすればよいですか?

17
user26830

CLRでは使用できません。 Win32 API呼び出しをインポートし、コンテナウィンドウを突く必要があります。以下が役立つかもしれません。

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
}
27
John Wu
    [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);
    }
12
Châu Nguyễn