隐藏控制台应用程序的控制台(完全),但只是有时

本文关键字:控制台 应用程序 完全 隐藏 | 更新日期: 2023-09-27 18:05:21

我有一个c#控制台应用程序,它运行预构建步骤(获取NuGet包)。

当我调试这个时,我想传入一个参数并显示控制台。当我不调试它时,我不想看到它。我甚至不希望它在那里闪烁一秒钟

我已经找到了隐藏它的方法,在它已经显示。但我无法找到一种方法让它永远不会显示,除非我愿意将其从控制台应用更改为Windows应用(如果我能找到一种方法在需要时显示控制台,我会这样做)。

隐藏控制台应用程序的控制台(完全),但只是有时

作为Windows应用程序构建,并在需要时显示控制台。要在需要时显示控制台,请使用P/Invoke调用AllocConsole (pinvoke.net有您需要的声明)。

(控制台子系统进程总是得到一个控制台,如果有的话,是它们的父进程的,否则是一个新的。这是Windows在深层次上的工作方式

使用FreeConsole WINAPI函数:

http://pinvoke.net/default.aspx/kernel32/FreeConsole.html

另一个解决方案是简单地切换到WinForms应用程序作为项目类型。然后不会分配控制台(并且您不需要显示表单)。