各位大侠,帮一帮啊,我在win2000中使用这个函数,来等待一个进程结束,
可以正常使用,返回值是WAIT_OBJECT_0,但是在WIN98下南,返回值总是WAIT_TIMEOUT.该怎么解决这个问题啊,急用啊
可以正常使用,返回值是WAIT_OBJECT_0,但是在WIN98下南,返回值总是WAIT_TIMEOUT.该怎么解决这个问题啊,急用啊
解决方案 »
- vc6,在多文档界面上放了一个对话框,为什么点击对话框上面的按钮没有反应(messagebox没反应)?
- 印刷字体的问题
- 请教高手们
- 请问引起连接状态为close_wait的原因是什么,我用winsock api写服务端的时候出现的问题?
- 请问侯捷的第一程序Generic调试出错???请过来人帮小弟一把
- 求16色调色板的具体RGB值
- 我想编一个类似钢琴的程序,有见解尽管说,都有分
- 如何在获得下载的页面里的超级链接? 还是(vc6 http)!~~ 请大家多提宝贵主意!
- 如果何实现动态的改变不规则窗体的大小?
- ShowWindow(...)和WM_SHOWWINDOW有区别吗?
- 请问用vc拷贝文件的过程中如何跟踪并将这些信息(目标文件路径,还有文件名,创建,修改日期以及拷贝的时间)写入日志文件aaa.log?
- GetConnectionBandwidth 什么意思?
就行了,不过只可是一直等的。不管多长时间
tSuccess=CreateProcess( NULL,cmd,NULL, NULL,FALSE, 0, NULL,exePath, &startup, &process );
if( tSuccess )
{
DWORD dwRect = WaitForSingleObject(process.hProcess, INFINITE);
switch(dwRet)
{
case :
case WAIT_OBJECT_0:
{
正常情况下从这里退出。
}
.
.
}
CloseHandle( process.hProcess );
CloseHandle( process.hThread );//*/
}
PROCESS_INFORMATION ProcessInfo;
StartupInfo.cb=sizeof(STARTUPINFO);
if(CreateProcess(NULL,cmdline.GetBuffer(0),NULL,NULL,FALSE,0,NULL,
NULL,&StartupInfo,&ProcessInfo))
{
WaitForSingleObject(ProcessInfo.hProcess,INFINITE);
等到的结果一定是==WAIT_OBJECT_0. 不然线程就阻塞在那里一直死了.
还判断啥!!
正确的可以
if (WaitForSingleObject(hProsess,0)== WAIT_OBJECT_0)
{
//线程结束...
}
else
{
//仍然在运行中...
}
0为一个查讯时间. 也可以写成以毫秒为单位的其他时间,INFINITE为永久等待.
比如12000时,则总是返回TIME_OUT.
比如12000时,则总是返回TIME_OUT.大家帮着找一下原因,不胜感激!!
在退出时SetEvent()然后SleepEx(300,false);然后在
if( tSuccess )
{
OpenEvent()
if(WaitForSingleObject(。,30)!=WAIT_TIMEOUT)
{
//你启动的进程退出了
}
}