当前位置:首页 > Windows程序 > 正文

C# 控制台窗口的显示与隐藏

2021-05-26 Windows程序

1. 定义一个Consolse帮助类,如下:

[csharp] view plaincopy

 

/// <summary>  

/// 控制台帮助类  

/// </summary>  

public static class ConsoleHelper  

{  

    /// <summary>  

    /// 获取窗口句柄  

    /// </summary>  

    /// <param name="lpClassName"></param>  

    /// <param name="lpWindowName"></param>  

    /// <returns></returns>  

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

    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);  

  

    /// <summary>  

    /// 设置窗体的显示与隐藏  

    /// </summary>  

    /// <param name="hWnd"></param>  

    /// <param name="nCmdShow"></param>  

    /// <returns></returns>  

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

    private static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);  

  

    /// <summary>  

    /// 隐藏控制台  

    /// </summary>  

    /// <param name="ConsoleTitle">控制台标题(可为空,为空则取默认值)</param>  

    public static void hideConsole(string ConsoleTitle = "")  

    {  

        ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;  

        IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);  

        if (hWnd != IntPtr.Zero)  

        {  

            ShowWindow(hWnd, 0);  

        }  

    }  

  

    /// <summary>  

    /// 显示控制台  

    /// </summary>  

    /// <param name="ConsoleTitle">控制台标题(可为空,为空则去默认值)</param>  

    public static void showConsole(string ConsoleTitle = "")  

    {  

        ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;  

        IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);  

        if (hWnd != IntPtr.Zero)  

        {  

            ShowWindow(hWnd, 1);  

        }  

    }  

}  


2. 程序中调用,,如下:

[csharp] view plaincopy

 

ConsoleHelper.hideConsole();  


3. 注意:如果程序是只能启动一个,则可以用上面的方法控制控制台的显示与隐藏;否则需要在初始化时对控制台的标题赋值,如下:

[csharp] view plaincopy

 

Console.Title = Guid.NewGuid().ToString();  

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71241.html