通过参数显示控制台窗口
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# 应用程序来决定自己是显示为控制台还是窗口应用程序?