一尘不染

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

c#

我到处搜索有关如何隐藏自己的控制台窗口的信息。令人惊讶的是,我唯一能找到的解决方案是骇人听闻的解决方案,其中涉及
按其标题FindWindow()查找控制台窗口。我对Windows
API进行了更深入的研究,发现有一种更好,更轻松的方法,因此我想将其发布在这里,供其他人查找。 __

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


阅读 393

收藏
2020-05-19

共1个答案

一尘不染

就是这样:

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);
2020-05-19