Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Lancio applicazioni
venerdì 17 ottobre 2003 - 15.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
161074
Profilo
| Newbie
1
messaggi | Data Invio:
ven 17 ott 2003 - 15:59
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
7.999
messaggi | Data Invio:
ven 17 ott 2003 - 16:51
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
Torna su
Stanze Forum
Elenco Threads
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 !