我正在编写一个Windows应用程序,我需要从中运行一些控制台应用程序并获取它们的输出。我尝试了两种不同的方法:
1)使用_popen(命令,“rt”) 2)使用重定向输出创建子进程(CreateProcess(),CreatePipe())
它们都有效,但在执行某些命令时会创建一个新的控制台窗口,这非常令人不愉快和丑陋。有没有办法在后台执行命令而无需打开新的控制台?
答案 0 :(得分:3)
您可以使用libexecstream。
它允许您运行控制台程序并使用流读取它们的输出。
如网站所述:
我可以补充说,我已经在最近的项目中成功使用了它,并且没有出现任何恶意的控制台窗口。
答案 1 :(得分:3)
您可能想尝试将CREATE_NO_WINDOW
或DETACHED_PROCESS
标记传递给CreateProcess
。