控制台的隐藏与显示 - C#

hmister
2023-01-04 / 0 评论 / 155 阅读 / 正在检测是否收录...

  因为工作的原因,经常会跑一堆控制台程序,任务栏都跑满了,有时候又需要看打印的日志,找起来巨费劲。紧接着,一个脑洞出现,为什么我不能把这些控制台全部管理起来呢,我想显示那个就显示那个,想不看那个就不看那个。于是就有了下面的小工具,话不多说,直接上核心代码

[DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
private static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

[DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);


//隐藏显示窗口
public static void WindowHide(string consoleTitle, int lpWindowName)
{
    try
    {
        IntPtr a = FindWindow(null, consoleTitle);
        if (a != IntPtr.Zero)
        {
            var _a = ShowWindow(a, (uint)lpWindowName);//隐藏窗⼝
        }
        else
        {
            MessageBox.Show($"{consoleTitle}未启用");
        }
    }
    catch (Exception)
    {
        MessageBox.Show($"操作失败");
    }
}
//调用
WindowHide(item, 5);//显示
WindowHide(item, 0);//隐藏

关于ShowWindow的介绍,以下截图结果来源于百度

202206021654155522463418.png

Demo地址:

0

评论 (0)

取消