hur.cn - 华软网

 热门搜索

如何获得winrar的解压缩时间

  作者:未知    来源:网络    更新时间:2011/1/13
问题可能问的有点问题,这里详细解释下
void CXXXXdlg::xxxxbuttion()
{
  zip();
  xml();
}

void cxxxxdlg::zip()
{
   shellexecute(NULL,"open","winrar","e -r e:\\123.zip e:\\234\\",nul,SW_SHOW);
}

zip()是解压zip资料  xml()是从解压出来的资料中读xml资料举行解析,功能都好用。然则有一个问题 zip函数其实就是调用winrar解压,然则解压的进程其实不在这个函数内,如果需要解压的资料很大,当zip()运行winrar实现解压功能后就会退出函数,运行到xml(),但其实这个时候资料还在解压的进程中。xml()就会没法猎取到要解压的资料。

用sleep()不行,我要解析的资料巨细不一定 从1m到1g就有可能。

讨教一下,这里我应该怎么获得解压的速度或说怎么判断解压完成呢?
---华软 网友回答---
帖子发重复了。。。这个帖子结贴。。
---华软网友回复---
读取资料时间吧
---华软网友回复---
GetProcessTimes() 能够获得指定进程运行的时间长度信息
---华软网友回复---
好吧,都在此帖回复吧。
我看下GetProcessTimes()
---华软网友回复---
额,对进程那不是很熟悉,如何获得winrar的进程句柄呢?
---华软网友回复---
引用 5 楼 dmmstx 的回复:
额,对进程那不是很熟悉,如何获得winrar的进程句柄呢?

另一个贴了回复了http://topic.csdn.net/u/20110113/15/7b17443a-433a-4116-b7b3-32ff9942f2e8.html?82268
---华软网友回复---
LZ是本意是
winrar解压完成后再执行xml()?
那用
CreateProcess
WaitForSingleObject

另外最好开新线程执行
---华软网友回复---
两种方法看了,第一个好用,第二个欠好用应该是。然则第一个指定winrar.exe的时候有局限性。。。要全路径,不过很谢谢。剩下的我自己研讨下。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。