你曾经是否想过在 WPF 应用程序运行起来后,可以动态打开/关闭控制台窗体。也就是说,你可以在 WPF 应用程序里,留一个后门,用于调试程序。在需要时,打开控制台窗口,查看后台监控数据;不需要时,关闭控制台窗口。
下面的方法应该可以满足你的需求:
<OutputType>Exe</OutputType>
public static class NativeConsole
{
[DllImport("kernel32.dll")]
public static extern IntPtr GetConsoleWindow();
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
public static void Show()
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_SHOW);
}
public static void Hide()
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
}
}
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
//隐藏控制台窗口
NativeConsole.Hide();
}
}
显示控制台窗口方法:
NativeConsole.Show();
隐藏控制台窗口方法:
NativeConsole.Hide();