c++ - 执行控制台应用程序而不创建在屏幕上闪烁的新控制台窗口(C++,Windows)

标签 c++ windows console window

我正在编写一个 Windows 应用程序,我需要从中运行一些控制台应用程序并获取它们的输出。我尝试了两种不同的方法:

1) 使用 _popen(command, "rt") 2) 创建具有重定向输出的子进程(CreateProcess()、CreatePipe())

它们都可以工作,但是在执行某些命令期间会创建一个新的控制台窗口,这非常令人不愉快且难看。有没有办法在后台执行命令而无需打开新控制台?

最佳答案

您可以使用libexecstream .

它允许您运行控制台程序并使用流读取其输出。

正如网站所述:

  • 适用于 Linux 和 Windows
  • 使用线程
  • 不依赖于任何其他非标准库
  • 仅作为源代码分发,需要您编译一个文件并将其链接到您的程序中
  • 具有 BSD 风格 license

我可以补充一点,我已经在最近的项目中成功使用了它,并且没有弹出可耻的控制台窗口。

关于c++ - 执行控制台应用程序而不创建在屏幕上闪烁的新控制台窗口(C++,Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3251328/

相关文章:

windows - 什么是最普遍/最常见的南美西类牙文化

c# - 完成后如何告诉我的程序执行 "re-do"不同的操作(由用户输入选择),直到设置了 do-while 要求?

c++ - 在 C++ 初始化列表中使用整型文字

c++ - 我如何在 C++ 中找到哪个子类正在调用父类的函数?

Java以管理员身份打开另一个应用程序

windows - 有没有一种工具可以组合 32 位 + 64 位应用程序并将它们打包成一个 32 + 64 位应用程序

c++ - 空终止字符数组(c 字符串)没有 for 循环不打印

c++ - 代码块,C++ 构建 : Permission denied collect2. exe

javascript - 每次我在棋盘上拖放棋子时都会出现错误

c++ - Visual C++ 不接受 hOut