通过参数显示控制台窗口

Posted

技术标签:

【中文标题】通过参数显示控制台窗口【英文标题】:Console window display by argument 【发布时间】:2010-09-30 10:58:36 【问题描述】:

我有一个 C# 项目构建“winexe”,启动时没有控制台窗口。

但是,我想通过提供 cmd 行参数来显示控制台窗口并写入 stdout/stderr。如果它关闭,应用程序将关闭。例如:eclipse.exe -debug

怎么做?

PS。我正在使用 Visual Studio 2005

【问题讨论】:

【参考方案1】:

试过这个:http://vaibhavgaikwad.wordpress.com/2007/02/21/console-window-for-a-windows-application-in-net/ - 似乎完美无缺!

【讨论】:

【参考方案2】:

即使在 Windows 窗体应用程序中,控制台也在那里,您可以使用System.Console 开始编写,可能基于您提到的命令行选项,或配置开关,或其他。从控制台窗口提示符启动您的应用程序将像正常一样打开您的 GUI,并且控制台输出将按照您的预期显示在控制台中。例如,您甚至可以将该控制台输出重定向到一个文件。也许这对你来说已经足够了?

实际上,从您的 Windows 窗体应用程序开始显示控制台窗口是另一回事。不完全确定如何去做(如果可能的话)。我会考虑启动一个cmd 实例,可能使用System.Diagnostics.Process 启动一个进程,同时重定向那个新进程的stdin/stdout/stderr

不过,这只是我目前的猜测。也许其他一些答案在这里会有所帮助?

【讨论】:

如果应用程序是使用 /target:winexe 构建的,那么 Console.Write 将不会正常显示在控制台中。您仍然可以将输出重定向到文件,或将其通过管道传送到“更多”或其他进程。不幸的是,“类型”不读取它的标准输入,所以你不能通过管道传递给它。虽然我找不到重定向到控制台的方法 - 似乎 ">con" 应该工作,但它没有。 (我运行的是 Windows 7。)

以上是关于通过参数显示控制台窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个 C# 应用程序来决定自己是显示为控制台还是窗口应用程序?

已经写好的控制台应用如何用MFC来添加窗口?

WPF通过附加属性控制窗口关闭

WPF通过附加属性控制窗口关闭

VMware Workstation上安装Ubuntu Server 12.04 窗口显示太小,如何变大?

MFC程序 调用控制台输出