显示/隐藏C#控制台应用程序的控制台窗口

我搜索了解如何隐藏自己的控制台窗口的信息。 令人惊讶的是,我能找到的唯一解决方案是涉及FindWindow() hacky解决方案,通过它的标题找到控制台窗口。 我深入了解Windows API,发现有更好更简单的方法,所以我想将它发布到这里供其他人查找。

你如何隐藏(并显示)与我自己的C#控制台应用程序相关的控制台窗口?


就是这样:

using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;

var handle = GetConsoleWindow();

// Hide
ShowWindow(handle, SW_HIDE);

// Show
ShowWindow(handle, SW_SHOW);

只需转到应用程序的“属性”并将“输出”类型从“控制台应用程序”更改为“ Windows应用程序


如果你想隐藏控制台本身,为什么你需要一个控制台应用程序? =)

我建议将Project Output类型设置为Windows应用程序而不是控制台应用程序。 它不会显示控制台窗口,但执行所有操作,如控制台应用程序。

链接地址: http://www.djcxy.com/p/50571.html

上一篇: Show/Hide the console window of a C# console application

下一篇: .NET Global exception handler in console application