微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用ShellExecuteEx并捕获标准in / out / err

我正在使用ShellExecuteEx来执行C中的命令。有没有办法使用ShellExecuteEx和捕获标准in / out / err?

注意:我不想使用CreateProcess 。

Windows:将input与2个鼠标分开

在Windows下C ++ ofstream写不起作用。 在Linux下工作正常

有没有办法将整个文件文件系统迷你filter驱动程序(内核模式)传递到用户模式应用程序?

设置没有System.Windows.Forms的鼠标位置

手指轻按在button外面时,保持事件不会取消

正如pilif和Bob所提到的,您需要使用CreateProcess 。

如果你想要代码包装它,我确实有一个在这个确切的问题在:

http://code.google.com/p/kgui/source/browse/trunk/kguithread.cpp 。

类( kGUICallThread )处理Linux,macOS和Windows版本。 代码是LGPL授权的。

我用来发现像你这样的问题。

假设你想从STDOUT中捕获它由dir命令生成输出,并将捕获的内容保存到out.txt中

使用文本编辑器并键入dir> out.txt并将其保存为mybat.bat (* .bat,不要* .txt)

在你的c / c ++程序中,输入WinExec(“mybat.bat”,SW_HIDE); 并运行你的应用程序。

打开out.txt,您将在当前目录中看到文件夹和文件名称

此外,您可以按照以下相同的方式运行任何可执行文件(* .exe)。

xxx.exe> out.txt

我希望它可以帮助你。 对不起,我的英文真的不好。

不,唯一的方法是使用CreatePipe和CreateProcess 。 请参阅这里的MSDN文章

这是不可能的。 ShellExecute ( Ex )基本上在shell的上下文中执行应用程序 – 所以你基本上是在做什么浏览器。

捕获STDIN和STDOUT是shell通常不能做的事情,你必须去CreateProcess路由(毕竟,如果要执行的文件是程序而动词是'open', ShellExecute最终会调用这个路径)。 。

CreateProcess是大多数人使用的。

你也可以考虑使用_popen

http://msdn.microsoft.com/en-us/library/96ayss4b%28VS.80%29.aspx

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐