skulle vilja med hjälp av vb kod avgöra om winzip körs eller ej.koll om winzip körs = [Löst!!]
har en loop där winzip packar filer (en per loop).
problemet blir att loopen är för snabb för winzip som ej hinner klart innan nästa körs. lösning med fördröjnings-timer passar ej då filernas storlek kan variera mycket.
har även provat :
a = shell(c:...winzip32....
if a <> 0 then
med den svarar bara när programmet startar ej slutar.
kanske getobject skulle passa men jag får ej till den med winzip.
några förslag??
mvh Perra
hittade en lösning på nätet.
Option Explicit
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
i formuläret:
Dim iTask As Long, ret As Long, pHandle As Long
a = "C:\Program\WinZip\winzip32.exe -min -e -o"
a = a & " " & dbPathname
a = a & " " & path
iTask = Shell(a) 'unzip the backup-file
pHandle = OpenProcess(SYNCHRONIZE, False, iTask)
ret = WaitForSingleObject(pHandle, INFINITE)
ret = CloseHandle(pHandle)
ovanstående kod funkar väldigt bra
\\Perra
ps glömde tacka för svaret!