Attesa dell'esecuzione di un processo

Supporto a WinRAR

Moderatore: Andrea

Rispondi
Last_Winter
Messaggi: 3
Iscritto il: 11 nov 2009, 15:34

Attesa dell'esecuzione di un processo

Messaggio da Last_Winter »

Salve a tutti,

ho la necessità di eseguire un file .EXE dopo la scompattazione del Winrar ma ho bisogno che quest'ultimo attenda la fine dell'esecuzione. Sulla guida è specificato:

"Se riscontrate dei problemi con un modulo auto-estraente nell’eseguire il programma “InstallShield” dall’istruzione Setup, eseguite “setup.exe /SMS” invece della semplice linea di comando “setup.exe”. Questa opzione permette al modulo auto-estraente di determinare correttamente la conclusione del programma d’installazione. "


Purtroppo però l'istruzione "/SMS" è un parametro proprio di installshield e non del Winrar.

Attendo lumi.

Grazie.

Francesco
Last_Winter
Messaggi: 3
Iscritto il: 11 nov 2009, 15:34

Re: Attesa dell'esecuzione di un processo

Messaggio da Last_Winter »

Esiste la modalità TEMPMODE che come dice la guida:

"forza il modulo auto-estraente a creare una cartella temporanea nella quale vengono estratti tutti i file; ad eseguire il programma specificato nel campo “Programmi esterni di installazione/configurazione / Esegui dopo l’estrazione e, al termine di questo programma, a rimuovere la cartella temporanea con tutto il suo contenuto."

Il problema è che io non voglio che elimini i file alla fine del processo....e non voglio nemmeno che mi crei i file in una directory diversa da quella dell'archivio rar.

Nessuno ha avuto il mio stesso problema? :cry:
Andrea
Site Admin
Messaggi: 404
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: Attesa dell'esecuzione di un processo

Messaggio da Andrea »

Last_Winter ha scritto:ho la necessità di eseguire un file .EXE dopo la scompattazione del Winrar ma ho bisogno che quest'ultimo attenda la fine dell'esecuzione.
Perché hai bisogno che WinRAR attenda la fine dell'esecuzione del tuo programma?
Se la causa risiede nell'esigenza d'eseguire, al termine del primo programma, un altro programma, basta che da "Setup=" fai eseguire un file batch che a sua volta avvia i 2 programmi in sequenza: per far questo nel file batch devi inserire un qualcosa del tipo:

Codice: Seleziona tutto

start /wait primo_pogramma.exe
secondo_programma.exe
In oogni caso un soluzione simile era già stata postata qui:
http://www.winrar.it/phpBB3/viewtopic.php?f=2&t=143
Cordialmente,

Andrea
Supporto WinRAR.it
Last_Winter
Messaggi: 3
Iscritto il: 11 nov 2009, 15:34

Re: Attesa dell'esecuzione di un processo

Messaggio da Last_Winter »

Ciao Andrea,

grazie per aver risposto ma non è questa la soluzione al mio problema. Pare che WinRar avvii i programmi nella riga setup in modalità ASINCRONA ovvero fà partire il file exe o BAT e poi prosegue per la sua strada senza attendere l'effettiva chiusura dell'esecuzione.

Necessito di questa funzione perchè il mio pacchetto autoestraente viene lanciato da un'applicazione (chiamiamola A, che attende la fine dell'esecuzione del rar) . Il pacchetto rar avvia un altro eseguibile, B, il quale scrive un file di LOG al termine. L'applicazione A legge questo file di LOG ma se il RAR non attende l'esecuzione di B il file di LOG non sarà creato in tempo e quindi non funzionerà tutta l'architettura.

Ciao
Andrea
Site Admin
Messaggi: 404
Iscritto il: 14 mag 2002, 18:52
Località: Bergamo
Contatta:

Re: Attesa dell'esecuzione di un processo

Messaggio da Andrea »

Last_Winter ha scritto:Pare che WinRar avvii i programmi nella riga setup in modalità ASINCRONA ovvero fà partire il file exe o BAT e poi prosegue per la sua strada senza attendere l'effettiva chiusura dell'esecuzione.
Corretto. Ma puoi lavorare diversamente... fai creare al tuo programma A un file di "semaforo" prima d'eseguire l'autoestraente e rimarrà in attesa della cancellazione di questo. Quando il programma B ha terminato il suo compito, oltre che generare il file di Log dovrà cancellare il file di semaforo, confermando ad A la sua corretta esecuzione.
Cordialmente,

Andrea
Supporto WinRAR.it
Rispondi