Newsgroup: it.comp.lang.delphi
Titolo: Priorita' di istallazione

Ciao a tutti,
per svariati motivi che non sto' ad elencare abbiamo creato un programma 
di istallazione dedicato per una determinata apparecchiatura. Ora, il 
programma deve eseguire varie operazioni pre istallazione, eseguire 
l'istallazione vera e propria e, solo alla fine, visualizzare un 
messaggio di reboot del sistema.
Il problema e' che tra le varie operazioni che esegue nella fase di pre 
istallazione chiama un modulo di setup esterno (creato con Installshield 
per Delphi) che si occupa di istallare il BDE. Questo modulo dovrebbe 
essere lanciato immediatamente ma, non so il motivo, si esegue dopo un 
certo tempo (30-40 secondi) e, capita, che il messaggio di reboot venga 
visualizzato prima del completamento dell'istallazione del BDE con 
conseguente incasinamento dell'utente.
La chiamata del modulo setup.exe del bde la eseguo tramite CreateProcess 
e, ho provato anche ad inserire un delay di 2 secondi prima di 
continuare il programma ma sembra che non funzioni.
Domanda... c'e' un modo per essere certi che un determinato programma 
sia stato caricato e/o eseguito prima di continuare l'esecuzione?
Nota dolente: il programma e' stato scritto in Delphi 5 e non posso 
passare a Delphi 7 od altri per motivi interni e, dulcis in fundo, deve 
funzionare su sistemi Windows 2000, XP e Vista
Grazie a tutti,
David

Anche qua abbiamo avuto lo stesso problema.... Poi per varie cose non
abbiamo approfondito.
Tu hai verificato se lo stesso setup del bde, lanciato direttamente da
fuori, parte veloce o no?
Cmq, il file setup.exe di bde dovrebbe essere a 16bit e qua entrano in
gioco wow, thunk, vdm etc etc etc...
Se noti che il setup parte lento anche da fuori, prova a eseguirlo in
modalita di compatibilita sempre da fuori.
Se cosi vedi che va, puoi provare a giocare coi parametri di
createprocess.
Questo è un estratto indovina di cosa relativo ai flags che puoi
specificare sulle chiamate di questa api di winzozz:
[cut]
CREATE_SEPARATE_WOW_VDM
Windows NT only: >>>>>>> This flag is valid only when starting a 16-
bit Windows-based application.  <<<<<<<<<<<<
If set, the new process is run in a private Virtual DOS Machine (VDM).
By default, all 16-bit Windows-based applications are run as threads
in a single, shared VDM. The advantage of running separately is that a
crash only kills the single VDM; any other programs running in
distinct VDMs continue to function normally. Also, 16-bit Windows-
based applications that are run in separate VDMs have separate input
queues. That means that if one application hangs momentarily,
applications in separate VDMs continue to receive input.
CREATE_SHARED_WOW_VDM
Windows NT only: The flag is valid only when starting a 16-bit Windows-
based application. If the DefaultSeparateVDM switch in the Windows
section of WIN.INI is TRUE, this flag causes the CreateProcess
function to override the switch and run the new process in the shared
Virtual DOS Machine.
Qualora servisse, io userei CREATE_SEPARATE_WOW_VDM.
In questo modo, avresti la certezza che il maledetto setup ha la sua
propria vdm dove nessuno puo' andare a rompere le scatole...
A parte cio', ci troviamo in un momento nel quale si deve seriamente
pensare a mollare bde, ihmo..
Ho sentito voci secondo le quali bde non va su macchine a 64 bit...
Inoltre, tremo al pensiero di cosa succedera' ad alcune cose (bde ma
anche accesso all'hardware..) con quella modalita' di compatibilita
prevista da seven..
Ma dico io..Invece di seven zio billy non potrebbe darci seLen??
Quello si che è un prodotto sul quale vale la pena mettere le mani..e
non solo!   :-D
A.
Pax vobiscum.
A.

ti chiedo troppo se ti chiedo di scrivermi in privato?
Grazie e ciao.
A.