因为工作的原因,经常会跑一堆控制台程序,任务栏都跑满了,有时候又需要看打印的日志,找起来巨费劲。紧接着,一个脑洞出现,为什么我不能把这些控制台全部管理起来呢,我想显示那个就显示那个,想不看那个就不看那个。于是就有了下面的小工具,话不多说,直接上核心代码
[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的介绍,以下截图结果来源于百度
Demo地址:
评论 (0)