请教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"; 展开
在程序中调用另一个外部程序 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"; 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询