Newsgroup: it.comp.appl.access
Titolo: Zippare e tenere sotto controllo il processo

L'obiettivo: fare il backup, zippando, del BE e/o di documenti word su
pc remoto, sospendendo, fino al termine dell'operazione, ogni altra
azione in Access.
La soluzione (molto grazie ad indicazioni trovate su icaa e sul sito
comune):
.. lancio del software di compressione (ZipGenius, equivalente free di
winzip):
retVal = Shell(strCmd, vbHide), dove la variabile strcmd è la stringa
di comando:
strcmd= zg.exe -add  ARRIVO ORIGINE -N -9.
da qui la routine prevede il passaggio a una sub
(BackupVerificaProcessoZG) che verifica se ZipGenius, ovvero il
processo zg.exe, è attivo, e in tal caso valorizza a True una
variabile:
   For Each obj In GetObject("winmgmts:").ExecQuery("SELECT * FROM
Win32_Process")
       If obj.Name = "zg.exe" Then
        Incorso = True 'il processo è attivo
        BackupAttendiunattimo
        Exit Sub
        End If
    Next
    Incorso = False ' il processo è terminato
'il valore della variabile viene quindi passato ad un'altra routine
(BackupAttendiunattimo) che prima fa passare un po'di tempo poi
rimanda alla routine precedente se Incorso è True, altrimenti prende
atto che il processo è terminato e passa oltre:
    pauseTime = 5   ' Imposta la durata in secondi.
    Start = Timer   ' Imposta l'ora di inizio.
If Incorso = True Then
    BackupVerificaProcessoZG
Else
    ....
End If
Il problema.
Tutto funziona benissimo, però... se si fa lo zip del solo BE, una
decina di secondi, dipende dal traffico sulla rete aziendale, e il
processo termina. Se invece si fa lo zip dei file word che stanno in
una directory (diciamo un centinaio o più) i tempi si allungano a
dismisura, dopo cinque minuti bisogna fare ctr+alt+canc. Mi sembra di
aver capito che la routin access che fa il monitoraggio dei processi
attivi sottrae risorse a ZipGenius, e questo anche se nelle opzioni di
ZG lo ho impostato con priorità alta. Per ora ho risolto monitorando
il termine del processo solo quando si fa lo zip del be, ma non quando
si fa lo zip di tanti files word. Qualche idea?
Una precisazione: sul sito comune avevo trovato unocx: zlib, che
peraltro funziona benissimo, ma ha il difetto di fare il "zip" di un
solo file.
OT
Colgo l'occasione per associarmi ai complimenti a MA per l'ottima
riuscita di CISA. Ottimo tutto: dai relatori ai deliziosi spuntini di
metà mattina (solo il caffè era una fetecchia, ma di sicuro arrivava
dall'America e non da Torre del Greco...)
ebola

azione in Access.
Ciao ebola,
potresti usare qualcosa già confezionato.
es.
----
Sub MyShell(ByVal Percorso As String, _
            ByVal windowstyle As Integer, _
            ByVal Attendi As Boolean)
Dim wshell As Object
Set wshell = CreateObject("WScript.shell")
wshell.Run Percorso, windowstyle, Attendi
Set wshell = Nothing
End Sub
----
Attendi=True aspetta la fine del processo.
per maggiori info
----
Run Method
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/7991e577-f2ac-4b33-8231-761971d6c0d9.asp
----
se non ti piace l'oggetto WScript.shell puoi usare le API
----
Shell and Wait
http://www.mvps.org/access/api/api0004.htm
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]