如何检测我的控制台应用程序是从其他控制台启动,还是在启动时打开了新控制台?
例如,如果我希望控制台在启动时打开一个新的控制台窗口时有一些自定义颜色,或者只是从其他控制台启动时保留所有内容。 (就像PowerShell.exe似乎一样)
答案 0 :(得分:1)
只需在新窗口(快捷方式,应用程序)中启动应用程序,即可将命令行上的特定参数传递给可执行文件,以指示环境应该是彩色的。
例如,myapp.exe -RunInNewConsole
另一个选项是使用AttachConsole方法确定您是否已在控制台中运行:
[DllImport("kernel32.dll")]
static extern bool AttachConsole(int dwProcessId);
private static bool IsRunningInConsole()
{
return AttachConsole(-1);
}