检测应用程序是在新控制台还是现有控制台中启动的

本文关键字:控制台 启动 检测 应用程序 | 更新日期: 2023-09-27 18:26:18

如何检测我的控制台应用程序是从另一个控制台启动的,还是在启动时打开了一个新控制台?

例如,如果我希望控制台有一些自定义颜色,如果它在启动时打开了一个新的控制台窗口,或者如果从另一个控制台启动,则保持一切原样。(很像PowerShell.exe)

检测应用程序是在新控制台还是现有控制台中启动的

只要在一个新窗口(快捷方式、应用程序)中启动应用程序,就可以在命令行上将特定参数传递给可执行文件,以指示环境应该是彩色的。

例如,myapp.exe -RunInNewConsole

另一个选项是通过使用AttachConsole方法来确定您是否已经在控制台中运行:

    [DllImport("kernel32.dll")]
    static extern bool AttachConsole(int dwProcessId);
    private static bool IsRunningInConsole()
    {
        return AttachConsole(-1);
    }