Il codice l'ho estratto da un mio applicativo che usa Win_ZIP, devi adattarlo:
In un modulo Bas:
codice:
' Shell per il Backup con WinZip - programma VB resta in attesa che
' il programma lanciato termini:
Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hprocess As Long, lpExitCode As Long) As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400
'--------------------------------------------
'Funzione per la copia ed il Backup con WinZip:
Function RikShell(exe As String, Optional WinStyle) As Integer
Dim processid As Long
Dim hprocess As Long
Dim exitcode As Long
Dim parm As Integer
'Controllo il parametro opzionale finestra:
Select Case VarType(WinStyle)
Case vbEmpty, vbNull, vbError
parm = vbNormalFocus
Case vbLong, vbInteger, vbSingle, vbDouble
parm = WinStyle
Case Else
parm = vbNormalFocus
End Select
'Preleva l'ID del processo lanciato:
processid = Shell(exe, parm)
'Crea un Handle per quel processo:
hprocess = OpenProcess(PROCESS_QUERY_INFORMATION, False, processid)
Do
'Controlla ripetutamente che termini la copia o il backup:
Call GetExitCodeProcess(hprocess, exitcode)
'Lascia libero il sistema di processare le altre applicazioni:
DoEvents
Loop While (exitcode = STILL_ACTIVE)
CloseHandle (hprocess)
End Function
codice:
Nel modulo della Frm:
'Copia con WinZip:
Case btComWZ = 1
FrmDialog.MousePointer = 11
LblDomanda.Caption = Space(0): LblRispo.Caption = Space(0)
LblRispo.Caption = "Backup con la compressione dei dati in corso con WinZip"
StringaComando = "C:\programmi\winzip\winzip32.exe -a -r " & ValoreDir & " " & FolOrig & ""
'C:\programmi\winzip\wzzip.exe
'Funzione per la copia ed il Backup - Modulo InfoFol:
Call RikShell(StringaComando)
Call LeggiDim
LblRispo.Caption = "Programma di backup con WinZip terminato."
LblRispo.Refresh
'Suono ding.wav - Modulo Connessione:
Call SoundCopy
FrmDialog.MousePointer = 0
End Select

PS: ValoreDir è il percorso destinazione e FolOrig d'origine.