我正在使用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] 举报,一经查实,本站将立刻删除。