我正在编写一个 Windows 应用程序,我需要从中运行一些控制台应用程序并获取它们的输出。我尝试了两种不同的方法:
1) 使用 _popen(command, "rt") 2) 创建具有重定向输出的子进程(CreateProcess()、CreatePipe())
它们都可以工作,但是在执行某些命令期间会创建一个新的控制台窗口,这非常令人不愉快且难看。有没有办法在后台执行命令而无需打开新控制台?
最佳答案
您可以使用libexecstream .
它允许您运行控制台程序并使用流读取其输出。
正如网站所述:
- 适用于 Linux 和 Windows
- 使用线程
- 不依赖于任何其他非标准库
- 仅作为源代码分发,需要您编译一个文件并将其链接到您的程序中
- 具有 BSD 风格 license
我可以补充一点,我已经在最近的项目中成功使用了它,并且没有弹出可耻的控制台窗口。
关于c++ - 执行控制台应用程序而不创建在屏幕上闪烁的新控制台窗口(C++,Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251328/