vc怎么隐藏运行外部程序

我做一个转码程序,用了一个a.exe文件实现转码。它是命令行的我想在MFC里调用这个a.exe,但不想它出现黑窗口,我只要等它运行完,读它生成的二进制文件就行。我怎么调用... 我做一个转码程序,用了一个a.exe文件实现转码。它是命令行的
我想在MFC里调用这个a.exe,但不想它出现黑窗口,我只要等它运行完,读它生成的二进制文件就行。

我怎么调用它,并让它隐藏运行呢?
展开
 我来答
bhtzu
2013-02-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4258万
展开全部

VC程序的三种执行外部程序方法:

WinExec,ShellExecute,CreateProcess

如果你是控制台程序(DOS黑屏命令行),那么据我所知,应该都没办法隐藏窗口。

这三个函数都有隐藏窗口的选项,但只针对窗口程序,控制台程序不行,你试试吧,呵呵。


像你这种情况,有几个办法建议:

  1. 将代码加入工程,应该是最简单的

  2. 将a.exe做成a.dll,功能调用库,也可以

  3. 将a.exe的功能通过简单的窗口程序实现,这样无论外部调用还是内部控制,窗口都能隐藏

  4. 将a.exe做成系统服务service程序,这个是后台执行程序最合理的方式。

wqte45
2017-10-06 · TA获得超过997个赞
知道小有建树答主
回答量:1492
采纳率:53%
帮助的人:365万
展开全部
string path = "F:\\My_Work\\Code\\C++\\test2\\Debug\\test2.exe";  
int a = WinExec(path.data(), SW_HIDE);

这样就可以 隐藏后台运行了   注意winexec的 第二个参数 要用 SW_HIDE

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
屍鬼封盡
2013-02-12 · TA获得超过325个赞
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:78.1万
展开全部
使用CreateProcess函数,把STARTUPINFO中的wShowWindow设置成0。
使用ShellExecute函数,把nShowCmd设置成0。

以上两种方法皆可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沉睡之颠
推荐于2017-10-08 · TA获得超过1495个赞
知道小有建树答主
回答量:1.1万
采纳率:0%
帮助的人:2463万
展开全部
CreateProcess函数在STARTUPINFO wShowWindow设置为0。
使用ShellExecute函数nShowCmd设置为0的。

以上两种方法都可以。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Frankqzh
2013-02-12 · TA获得超过275个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:247万
展开全部
CreateProcess把STARTUPINFO中wShowWindow设为SW_HIDE(0);ShellExecute把nShowCmd设为SW_HIDE(0);std::system用system("start a.exe /B /Wait")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式