我用如下代碼控制壓縮. 
    Dim wzipexe As String
    Dim wsource As String
    Dim wcmd As String
    Dim RetVal As Double
    wzipexe = "C:\Pr..\Winzip\winzip32.exe"
    wsource = "C:\Pos.mdb"
    wtarget = "C:\Pos.zip"
    wcmd = wzipexe & " -a " & wtarget & " " & wsource
    RetVal = Shell(wcmd, 6)
請問我怎樣知道已壓縮完成,返回什么值嗎?

解决方案 »

  1.   

    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Private Const INFINITE = -1&
    Private Const SYNCHRONIZE = &H100000
    ''''------------------------------
    Dim wzipexe As String
        Dim wsource As String
        Dim wcmd As String
        Dim RetVal As Double
        dim p,r
        wzipexe = "C:\Pr..\Winzip\winzip32.exe"
        wsource = "C:\Pos.mdb"
        wtarget = "C:\Pos.zip"
        wcmd = wzipexe & " -a " & wtarget & " " & wsourceRetVal = Shell(wcmd, 6)
       p = OpenProcess(SYNCHRONIZE, False, RetVal)
       r = WaitForSingleObject(p, INFINITE)
       r = CloseHandle(p)
      

  2.   

    WaitForSingleObject  等待shell执行完成