【发布时间】:2014-05-01 14:42:06
【问题描述】:
我有一个 C# 控制台应用程序项目,其中输出类型设置为“Windows 应用程序”。这样控制台就不会在程序开始时闪烁。
但是我也想允许一个帮助命令行参数,如果你从命令行使用“/?”运行它,它将显示有关程序的详细信息。作为论据。
有没有办法让程序作为 Windows 应用程序正常运行,但如果传递了帮助参数则显示控制台?
编辑 - 在阅读了This question 的答案和类似的答案后(这个问题假设您正在使用控制台应用程序输出类型运行),我正在使用这个解决方案。
[DllImport(Kernel32_DllName)]
private static extern bool AllocConsole();
[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;
static void Main(string[] args)
{
if(args.Contains("/?"))
{
AllocConsole();
Console.WriteLine("helpText");
Console.ReadLine();
var handle = GetConsoleWindow();
//Hides console
ShowWindow(handle, SW_HIDE);
}
}
【问题讨论】:
标签: c# console console-application