Lancio applicazioni

venerdì 17 ottobre 2003 - 15.59

161074 Profilo | Newbie

Salve a tutti!!!

Ho un grosso problema che non riesco a risolvere, forse
sto girando in tondo....

Il problema è questo: ho realizzato un'applicazione, che
però in fase di installazione deve prima installare altri
2 programmi....i 2 programmi da installare sono dei
files .EXE da lanciare, ovviamente dopo aver verificato
nel registro di sistema che non siano già installati.

Lavoro con Visual Studio NET e NON voglio costringere
l'utente ad installare il Framework, quindi avevo pensato
di realizzare il loader in VC++.

A questo punto cominciano i guai:

- Ho provato con l'istruzione _spawnl
- Ho provato con CreateProcess
- Ho provato con i thread

....ma ho sempre lo stesso problema: non riesco
a "catturare" la fine dell'installazione degli altri
programmi. Tra parentesi vanno installati in sequenza,
quindi non posso effettuare una _spawl(NO_WAIT).
Tutto ciò che sono riuscito ad ottenere finora è stato
l'avvio del primo processo di installazione, che arriva
tranquillamente alla fine, ma da qui in poi il mio
programma continua ad attendere la fine
dell'installazione.... A questo punto non so proprio come fare..... qualcuno ha qualche idea per trarmi
d'impaccio???? Grazie in anticipo.

Brainkiller Profilo | Guru

Ciao,
in effetti il tuo approccio sembra corretto.
Con la CreateProcess puoi lanciare gli altri programmi oppure semplicemente lanciarli come se fossero degli script non so con una ShellExecute o altro.
Mentre invece per controllare se è ancora in esecuzione puoi fare un FindWindow o FindWindowEx specificando il titolo della finestra, in questo modo in base al valore di ritorno puoi capire se effettivamente è ancora aperta o è già stata eseguita e lanciare eventualmente il secondo job.
Oppure puoi creare la lista dei processi in esecuzione e vedere se c'è quel particolare processo. Insomma ci sono tanti modi, forse il migliore sarebbe che il processo secondario notificasse al primario che ha terminato ma non saprei come fare.

Oppure cosa più semplice affidati a quei programmi appositi per creare setup di installazione. Se usi quelli integrato in Visual Studio .NET mi pare che puoi specificare delle Custom Action e lanciare comandi esterni prima di proseguire con l'installazione.

SAluti
David De Giacomi
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5