vc调用批处理等待问题

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:57:35
vc调用批处理后,
是否等待该批处理执行完后继续执行?
若不是,
应该如何才能使其等待该批处理执行完后继续执行?

我要调用批处理产生一个文件,在文件产生后程序再继续执行,
谢谢!
谢谢,不过我对vc不熟悉,
能给个简单例子或模版,
只要大概给个框架就可以,

void CTestDlg::OnOK()
{
// TODO: Add extra validation here
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
si.hStdInput=GetStdHandle(STD_INPUT_HANDLE);
if(!CreateProcess(NULL,"c:\\test.bat",NULL,NULL,FALSE,NULL,NULL,NULL,&si,&pi))
{
AfxMessageBox("不能创建进程");
}
else
{
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
AfxMessageBox("执行完毕干活去");
}
}

c:\\test.bat
echo "hello"
PAUSE
exit

这样做试试

FILE *fp;
while((fp = fopen("file name", "r") ) != NULL);
//do other thing

用_spawnl
比如要执行c:\abc.bat

_spawnl(_P_WAIT, "c:\\abc.bat", NULL);