char cmdline[200];
CString tmp,stredit2;
stredit2 = "adb devices >.//Mylog12.txt";
tmp.Format("cmd /c %s",stredit2);
sprintf(cmdline,"%s",tmp); if (!CreateProcess(NULL,cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) //创建子进程
{
AfxMessageBox("CreateProcess Failed!");
return ;
}
if(fclose(fp) == 0)
MessageBox("关闭成功!");
if(DeleteFile(".//Mylog12.txt") != 0)
MessageBox("删除成功!");
删除说被另一个进程占用,这个怎么搞啊.谢了!
CString tmp,stredit2;
stredit2 = "adb devices >.//Mylog12.txt";
tmp.Format("cmd /c %s",stredit2);
sprintf(cmdline,"%s",tmp); if (!CreateProcess(NULL,cmdline,NULL,NULL,TRUE,NULL,NULL,NULL,&si,&pi)) //创建子进程
{
AfxMessageBox("CreateProcess Failed!");
return ;
}
if(fclose(fp) == 0)
MessageBox("关闭成功!");
if(DeleteFile(".//Mylog12.txt") != 0)
MessageBox("删除成功!");
删除说被另一个进程占用,这个怎么搞啊.谢了!
然后CloseHandle(handleProcess)
while(!CreateProcess(strExePath, CmdLine, NULL, NULL, NULL,
CREATE_NEW_CONSOLE, NULL, NULL,NULL,
&stProcessInfo))
{
return false;
}
CloseHandle(stProcessInfo.hThread);
CloseHandle(stProcessInfo.hProcess);
丢个例子在这里放着吧!
尤其是单CPU的系统,那个进程要等几十上百ms才可能开始执行,这段时间C程序早执行很多行了。WaitForSingleObject(pi.hProcess, INFINITE); //等待进程结束CloseHandle(pi.hThread); //一定要先关闭句柄
CloseHandle(pi.hProcess);//再删除文件……
我是先建一个dailog工程,在这个dailog里用一个button再打开一个dailog,上面这些事都是在第二个dailog里发生的,我发现如果不fopen则可以删除,fopen后必须把第一个dailog了才能删除,现在是想不关第一个dailog只关第二了dailog就同时把这个文件删除,目前是删不掉,藐视被第一个dailog进程占用.
这个怎么解决,谢谢!