在我的WPF应用程序中,我将控制台窗口用作调试/消息窗口-我已经设置了选项以显示和隐藏窗口,所有这些都很好地工作。唯一的问题是,当用户关闭控制台窗口时,它会退出整个程序。我如何覆盖这个行为,使用户单击X按钮时只隐藏控制台窗口而不退出应用程序?
这是我目前所拥有的:
const int SW_HIDE = 0;
const int SW_SHOW = 5;
public static bool ConsoleVisible { get; private set; }
[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public static void HideConsole()
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
ConsoleVisible = false;
}
public static void ShowConsole()
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_SHOW);
ConsoleVisible = true;
}
** 对于想要使用此代码的人,您需要:using System.Runtime.InteropServices;
该代码源自这个答案:https://dev59.com/53A65IYBdhLWcg3w5zDB#3571628
** 编辑 **
再看看,似乎不可能。我在这里看到一个答案:https://dev59.com/SGct5IYBdhLWcg3wnurg#12015131,它讨论了删除退出按钮的方法,这也是可以接受的,但它似乎是C++代码,我找不到它的C#替代品。
** 编辑 2 **
我能够找出转换为C#并将其编写为以下答案。