1. 定義一個Consolse幫助類,如下:
- /// <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. 程序中調用,如下:
- ConsoleHelper.hideConsole();
3. 注意:如果程序是只能啟動一個,則可以用上面的方法控制控制台的顯示與隱藏;否則需要在初始化時對控制台的標題賦值,如下:
- Console.Title = Guid.NewGuid().ToString();
