【发布时间】:2011-03-16 03:29:41
【问题描述】:
我正在编写一个 Windows 应用程序,我需要从中运行一些控制台应用程序并获取它们的输出。我尝试了两种不同的方法:
1) 使用 _popen(command, "rt") 2) 创建带有重定向输出的子进程(CreateProcess(), CreatePipe())
它们都可以工作,但是在执行某些命令期间会创建一个新的控制台窗口,这非常令人不快和丑陋。有什么方法可以在不打开新控制台的情况下在后台执行命令?
【问题讨论】:
-
除非 CREATE_NEW_CONSOLE 标志被传入,否则 CreateProcess 不会创建新控制台。您确定您正在执行的命令没有创建自己的控制台吗?
-
你是对的,执行的命令会创建自己的控制台,因为它们是控制台应用程序。例如,其中一个应用程序是 netstat。
标签: c++ windows console window