请教C++外部程序调用的问题

我想写一段代码,实现如下功能:在程序中调用另一个外部程序f.exe,主程序要等f.exe退出后再退出。我的代码如下,但只能调起外部程序,调起来后主程序就退出了,请高手帮忙... 我想写一段代码,实现如下功能:
在程序中调用另一个外部程序 f.exe,主程序要等f.exe退出后再退出。
我的代码如下,但只能调起外部程序,调起来后主程序就退出了,请高手帮忙改一下,实现主程序要等被调用的程序退出后再退出的功能,谢谢。
#include "stdio.h"
#include "stdlib.h"
#include"windows.h"
int main(int argc,char** argv){
ShellExecute(NULL,"open", "C:\\Program Files\\CEB\\GTS\\nlterm\\NLTERMSPC2.exe", NULL,"C:\\Program Files\\CEB\\GTS\\nlterm\\",SW_SHOW);
return 0;
}
狮子团团长说用WaitForSingleObject,但我用了没有反应。我用了下面的代码监控状态变化,发现被调起的程序关闭前后并没有变化:
HINSTANCE hins = ShellExecute(NULL,"open", "C:\\Program Files\\CEB\\GTS\\nlterm\\NLTERMSPC2.exe", NULL,"C:\\Program Files\\CEB\\GTS\\nlterm\\",SW_SHOW);
while (WaitForSingleObject(hins, INFINITE) != WAIT_OBJECT_0){
cout<<WaitForSingleObject(hins, INFINITE)<<"\n";
}
网上有人说不能用ShellExecute,要用CreateProcess,我试了下面的代码,调不起notepad
LONG lRet;
PROCESS_INFORMATION pi;
STARTUPINFO si;
si.cb=sizeof(si);
si.wShowWindow=SW_SHOW;
si.dwFlags=STARTF_USESHOWWINDOW;
lRet=CreateProcess(NULL,"c:\\windows\\notepad.exe c:\\ftp.txt",NULL,NULL,FALSE,CREATE_NEW_CONSOLE,NULL,NULL,&si,&pi);
cout<<"进程创建状态:"<<lRet<<"\n";
展开
 我来答
狮子团团长
2010-08-03 · TA获得超过202个赞
知道答主
回答量:88
采纳率:0%
帮助的人:72万
展开全部
tips:
ShellExecuteEx
WaitForSingleObject

good luck
月夜黑鹰
2010-08-03 · TA获得超过723个赞
知道小有建树答主
回答量:1198
采纳率:0%
帮助的人:820万
展开全部
第一个参数不应该是NULL,那是父窗口的句柄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式