2014-02-26 104 views
12

我正在C#上的控制檯應用程序工作,我需要打開最大化的控制檯。當我剛剛點擊控制檯窗口上的最大化按鈕時,它只能在高度上而不是在寬度上最大化。我試圖使用下面的代碼:最大化控制檯窗口 - C#

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

這幾乎在我的計算機上工作,但在其他計算機上出現錯誤。 我應該怎麼做才能最大化控制檯?

+0

_What錯誤你的get_?你讀過它嗎? – SLaks

+1

http://msdn.microsoft.com/en-us/library/windows/desktop/ms683193(v=vs.85).aspx – SLaks

+0

閱讀此內容並查看SLaks評論:http://stackoverflow.com/questions/ 7670633/c-sharp-columns-for-a-console-in-c-sharp –

回答

15

不能用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 
} 
+0

您能更精確地瞭解如何使用此代碼嗎? – user26830

+0

@ user26830(假設代碼做你需要的)不會比這更簡單 – Jason

+0

我編輯了我的回覆,給你準備好剪切和粘貼的代碼,並擺脫了Visual Basic醜陋:) –

4
[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); 
    } 
+2

請提供一些解釋爲什麼代碼可以解決問題。只有代碼答案是不鼓勵的。 – zero323

+0

即使您在沒有調試器的情況下啓動您的控制檯應用程序,此答案也能正常工作,但接受的答案並非如此。另一個選項是user32.dll中的FindWindowByCaption – nawfal