请教高手,关于createprocess的一个问题,急!!

bennylee1979 2003-11-10 07:17:16
CreateProcess( NULL,
"command.com /c netstat.exe -e|find /v \"Interface\" \
|find /v \"Received\"|find /v \"Unknown\">data.huawei", // Command line.
NULL,
NULL,
FALSE,
CREATE_NO_WINDOW+HIGH_PRIORITY_CLASS, NULL,
NULL,
&si,
&pi );

_strtime(str_dateandtime0);

// Wait until child process exits.
WaitForSingleObject( pi.hProcess, INFINITE );

Sleep(5000);


CreateProcess( NULL, // No module name (use command line).
"command.com /c netstat.exe -e|find /v \"Interface\" \
|find /v \"Received\"|find /v \"Unknown\">>data.huawei", // Command line.
NULL,
NULL,
FALSE,
CREATE_NO_WINDOW+HIGH_PRIORITY_CLASS, NULL,
NULL,
&si,
&pi );
// Wait until child process exits.
_strtime(str_dateandtime1);
WaitForSingleObject( pi.hProcess, INFINITE );


程序说明:间隔5秒,分别执行netstat.exe,将执行的结果存入文件dat.huawei中,
请问如何保证
1、只在第一个createprocess执行完毕后才执行第二个createprocess
2、只在这两个createprocess执行完毕后才继续执行程序的下一步
[说明]程序的下一步是读取分析文件data.huawei

谢谢!!


...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
COpyFRee 2003-11-20
  • 打赏
  • 举报
回复

第一个CreateProcess结束后执行:

CloseHandle(pi.hThread);
//等待进程结束
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle (pi.hProcess);

不用加:Sleep(5000); 这个等待是不必要的

这样第二个CreateProcess执行时,第一个已经结束并释放了。
GR 2003-11-12
  • 打赏
  • 举报
回复
waitforSingleObject()

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧