banner graphic
Riferimenti

Estensioni del programma di installazione di Windows

╚ possibile estendere il programma di installazione di Windows in tre modi.

Esecuzione dei file inf da riga di comando

Per eseguire la sezione Install contenuta nei file inf Φ possibile utilizzare i comandi di sistema di Windows Rundll.exe o Rundll32.exe. La sintassi della riga di comando Φ la seguente.

RunDll setupx.dll,InstallHinfSection <sezione> <modalitα-riavvio> <nome-inf>

Il parametro <sezione> corrisponde a una sezione Install presente nel file inf. La riga di comando che segue consente ad esempio di installare il componente opzionale Giochi e, se il programma di installazione rileva che Φ necessario riavviare il computer, all'utente viene richiesto se riavviare il immediatamente computer al termine dell'installazione. Il significato dei valori del parametro <modalitα-riavvio> Φ descritto pi∙ avanti in "Uso del parametro modalitα-riavvio".

RunDll setupx.dll,InstallHinfSection games 4 applets.inf

Note

Uso del parametro modalitα-riavvio

Le modalitα di riavvio sono cinque.

define HOW_NEVER_REBOOT 0
define HOW_ALWAYS_SILENT_REBOOT 1
define HOW_ALWAYS_PROMPT_REBOOT 2
define HOW_SILENT_REBOOT 3
define HOW_PROMPT_REBOOT 4

Se <nome-inf> specifica un file inf utente invece di uno di Windows, aggiungere 128 ai valori precedenti. Nell'esempio precedente in cui viene installato il componente opzionale Giochi, <modalitα-riavvio> Φ impostato a 4. Ci≥ avviene perchΘ Applets.inf Φ un file inf di Windows. Se si installa un componente opzionale che possiede un proprio file inf, il parametro <modalitα-riavvio> deve essere impostato a 132. Aggiungendo 128 al parametro <modalitα-riavvio>, tutti i file che si stanno installando si devono trovare nella stessa cartella del file inf dell'utente sul disco di installazione.

Nota

Il seguente elenco descrive ciascuna delle modalitα di riavvio.

NeverReboot
Impostare <modalitα-riavvio> a 0 o 128. In qualsiasi situazione il computer non verrα riavviato. Sarα il sistema operativo che dovrα determinare se il computer deve essere riavviato. Per il programma di installazione ci≥ significa che vi Φ un file C:\Windows\Wininit.ini le cui dimensioni sono diverse da zero.

AlwaysSilentReboot
Impostare <modalitα-riavvio> a 1 o 129. All'utente non verrα richiesto di riavviare il computer e il computer verrα sempre riavviato.

AlwaysPromptReboot
Impostare <modalitα-riavvio> a 2 o 130. All'utente verrα sempre richiesto se desidera o meno riavviare il computer. Il programma di installazione non deciderα se Φ necessario riavviare il computer.

SilentReboot
Impostare <modalitα-riavvio> a 3 o 131. Se il programma di installazione rileva che il computer deve essere riavviato, non vi sarα alcuna interazione con l'utente.

PromptReboot
Impostare <modalitα-riavvio> a 4 o 132. Se il programma di installazione rileva che il computer deve essere riavviato, visualizza all'utente un'apposita finestra di dialogo.

Torna all'inizio del file

Installazione di componenti opzionali dal codice di un'applicazione a 32 bit

Dopo l'installazione di Windows su un computer, pu≥ essere necessario aggiungere uno o pi∙ dei componenti opzionali di Windows, ad esempio Giochi. Questo tipo di installazione, che ha luogo dopo l'installazione iniziale di Windows, Φ denominata installazione in modalitα di manutenzione. L'installazione in modalitα di manutenzione viene in genere iniziata da Windows facendo clic sull'icona Installazione applicazioni del Pannello di controllo. Per i fornitori di componenti software opzionali Φ tuttavia disponibile un'alternativa. I componenti opzionali possono essere installati utilizzando una chiamata CreateProcess in una applicazione a 32 bit.

Nota

Per installare un componente opzionale da un'applicazione a 32 bit, usare una combinazione delle modalitα descritte di seguito.

Controllo del registro di configurazione

Controllare innanzitutto il registro di configurazione per individuare se il componente opzionale Φ giα installato, oppure cercare i relativi file. Il percorso delle informazioni della chiave del registro di configurazione relativamente a tutti i componenti opzionali correntemente installati Φ quello che segue.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SETUP\OptionalComponents]

╚ possibile che sotto tale chiave vi siano dei valori che puntano a delle sottochiavi e che ciascuna di esse contenga delle informazioni sui componenti opzionali installati, nonchΘ informazioni necessarie per l'installazione di un nuovo componente opzionale. Si supponga ad esempio di voler installare Giochi come componente opzionale. Per controllare se Φ giα installato, cercare il seguente valore di sottochiave sotto la chiave OptionalComponents.

"Games"="Games"

Aprire quindi la chiave "Games" sotto la chiave dei componenti opzionali per visualizzare quanto segue.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SETUP\OptionalComponents\Games]
"INF"="applets.inf"
"Section"="games"
"Installed"="0"

Questo mostra che il componente opzionale Giochi non Φ installato in questo computer, perchΘ il flag "Installed" Φ impostato a 0.

Codifica di una chiamata alla funzione CreateProcess

Per installare un componente opzionale come Giochi, utilizzare i valori "INF" e "Section" della chiave precedente in una chiamata CreateProcess che esegue Setupx.dll mediante RUNDLL. L'operazione Φ la stessa eseguita utilizzando l'icona Installazione applicazioni del Pannello di controllo quando si installa un componente. La sintassi del parametro lpCommandLine della chiamata CreateProcess Φ la seguente.

RunDll setupx.dll,InstallHinfSection <sezione> <modalitα-riavvio> <nome-inf>

I valori dei parametri <sezione> e <nome-inf> sono quelli rilevati nella chiave di registro di configurazione descritta sopra. La chiamata CreateProcess installa ad esempio il componente opzionale Giochi e, se il programma di installazione di Windows rileva che Φ necessario riavviare il computer, chiede all'utente se desidera riavviare immediatamente il computer al termine dell'installazione. Il significato dei valori del parametro <modalitα-riavvio> Φ descritto nella sezione "Uso del parametro modalitα-riavvio".

RunDll setupx.dll,InstallHinfSection games 4 applets.inf

Nota

L'applicazione di installazione non deve pi∙ avere codice da eseguire dopo che la chiamata a CreateProcess Φ stata effettuata, perchΘ una volta che Setupx.dll ha il controllo, il codice aggiuntivo potrebbe causare il riavvio del computer. Se il processo di installazione richiede l'esecuzione di altro codice dopo l'esecuzione della chiamata a CreateProcess, utilizzare l'elenco RunOnce nel file INF.

Nota

Esecuzione di un file inf con il pulsante destro del mouse

Il programma di installazione riconosce un nome particolare della sezione di installazione, denominata DefaultInstall, nei file inf che installano i componenti opzionali. Se si utilizza una sezione [DefaultInstall] nel file inf, l'utente pu≥ fare clic con il pulsante destro del mouse sull'icona di un file inf nell'interfaccia utente delle versioni a 32 bit di Windows per eseguire la sezione [DefaultInstall]. Dopo che l'utente ha fatto clic con il pulsante destro del mouse sull'icona di un file inf, viene visualizzato un menu di scelta rapida in cui l'utente, per eseguire la sezione [DefaultInstall], deve selezionare l'opzione Installa.

L'uso di una sezione di installazione denominata [DefaultInstall] nel file inf si rivela utile per l'installazione dei componenti opzionali. Tale metodo si rivela particolarmente utile durante lo sviluppo dell'applicazione. Se si desidera scrivere un'applicazione di installazione, si ha a disposizione un metodo per installare i componenti opzionali prima di sviluppare il codice dell'applicazione di installazione.

Di seguito Φ riportato un esempio della sezione DefaultInstall contenente delle voci tipiche.

[DefaultInstall]
CopyFiles=QCD.copy.prog, QCD.copy.hlp, QCD.copy.win, QCD.copy.sys, QCD.copy.inf
UpdateInis=QCD.Links
AddReg=QCD.reg, QCD.run
Uninstall=FlexiCD_remove