C++调用system函数,如何不弹cmd.exe程序窗口

如题,我知道使用WinExec(szCmdLine,SW_HIDE)可以不显示窗口,但是winexec这个函数不会等待cmd命令执行结束,代码就会继续而system会等待... 如题,我知道使用WinExec(szCmdLine, SW_HIDE)可以不显示窗口,但是winexec这个函数不会等待cmd命令执行结束,代码就会继续
而system会等待程序执行结束,但是会弹出cmd程序窗口,请问怎么办???
我认为需要用下面的方式处理
方法1:让winExec等待命令调用结束
方法2:system不显示cmd窗口
方法3:其他的好方法

求大神帮忙
展开
 我来答
金色潜鸟
2015-06-05 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5701万
展开全部
命令行里, 用 start /B 开始。
例如, 原来要 跑程序 b.exe, 程序输出结果 显示在 屏幕上。我们 用 start /B 取消窗口,用 > x.txt 把屏幕 显示内容 转向到 文件 x.txt 里。调用:
system("start /B b.exe >> x.txt");
就可以了。
start 的 巧妙用法 见 帮助文件。 拍 start /? 阅读。
hellfara
2015-06-04 · TA获得超过200个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:241万
展开全部
用CreateProcess,有参数可以控制是否显示窗口

返回值是个窗口句柄HANDLE,可以用WaitForSingleObject来等待结束
用GetExitCodeProcess来判断返回值
更多追问追答
追问

我尝试将SW_HIDE改成SW_NORMAL,结果发现只是打开了cmd,并没有输入指令

追答
用命名管道(namedpipe)与cmd进行交互。
详情查询MSDN
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式