titular

Extensiones del programa de instalaci≤n de Windows

Puede ampliar el programa de instalaci≤n de Windows de tres formas:

Ejecutar archivos .inf desde la lφnea de comandos

Puede usar los comandos del sistema Rundll.exe o Rundll32.exe de Windows para ejecutar una secci≤n Install en un archivo .inf. La sintaxis de la lφnea de comandos es la siguiente:

RunDll setupx.dll,InstallHinfSection <secci≤n> <modoDeReinicio> <nombreInf> 

El parßmetro <secci≤n> es una secci≤n Install del archivo .inf. Por ejemplo, la lφnea de comandos siguiente instala el componente opcional Games y, si el programa de instalaci≤n determina que se debe reiniciar el equipo, le pregunta al usuario si desea reiniciar el equipo inmediatamente una vez que se complete la instalaci≤n. El significado de los valores del parßmetro <modoDeReinicio> se describe en "Utilizar el parßmetro modo de reinicio", a continuaci≤n.

RunDll setupx.dll,InstallHinfSection games 4 applets.inf

Notas

Usar el parßmetro modo de reinicio

Hay cinco modos de reinicio:

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

Si <nombreInf> especifica su archivo .inf en lugar de un archivo .inf de Windows, sume 128 a los valores mostrados arriba. En el ejemplo anterior que instala el componente opcional Games, <modoDeReinicio> se establece a 4. Esto se debe a que Applets.inf es un archivo .inf de Windows. Si estß instalando un componente opcional que tiene su propio archivo .inf, establezca <modoDeReinicio> a 132. Si suma 128 al parßmetro <modoDeReinicio>, todos los archivos que instale deben estar en la misma carpeta que su archivo .inf del disco de instalaci≤n.

Nota

La lista siguiente describe cada modo de reinicio:

NeverReboot
Establece <modoDeReinicio> a 0 o 128. El equipo no se reiniciarß en ning·n caso. El cliente decide si el equipo debe reiniciarse. Para el programa de instalaci≤n, esto significa que hay un archivo C:\Windows\Wininit.ini que no tiene un tama±o de cero bytes.

AlwaysSilentReboot
Establece <modoDeReinicio> a 1 o 129. No se pedirß al usuario que reinicie el equipo y Θste se reiniciarß siempre.

AlwaysPromptReboot
Establece <modoDeReinicio> a 2 o 130. Siempre se pedirß al usuario que decida si desea reiniciar el equipo. El programa de instalaci≤n no intenta determinar si es necesario reiniciar el equipo.

SilentReboot
Establece <modoDeReinicio> a 3 o 131. Si el programa de instalaci≤n determina que es necesario reiniciar el equipo, no hay interacci≤n con el usuario.

PromptReboot
Establece <modoDeReinicio> a 4 o 132. Si el programa de instalaci≤n determina que es necesario reiniciar el equipo, pregunta al usuario con un cuadro de dißlogo.

Volver al principio del archivo

Instalar componentes opcionales desde el c≤digo de una aplicaci≤n de 32 bits

Una vez que Windows se instala en un equipo, puede ser necesario agregar uno o varios componentes opcionales de Windows, por ejemplo, Games. Este tipo de instalaci≤n, que ocurre despuΘs de que el programa de instalaci≤n instale inicialmente Windows, se denomina instalaci≤n en modo de mantenimiento. Normalmente, la instalaci≤n en modo de mantenimiento se inicia desde Windows al hacer clic en el icono Agregar o quitar programas del Panel de control. Sin embargo, hay una alternativa disponible para los fabricantes y proveedores del componente de software opcional: pueden instalarlo mediante una llamada a CreateProcess en una aplicaci≤n de 32 bis.

Nota

Para instalar un componente opcional desde una aplicaci≤n de 32 bits, use una combinaci≤n de los mΘtodos descritos a continuaci≤n.

Comprobar el Registro

En primer lugar, compruebe el Registro para ver si el componente opcional ya estß instalado o busque los archivos. La clave del Registro que contiene informaci≤n acerca de todos los componentes opcionales instalados actualmente es la siguiente:

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

Hay valores debajo de esta clave que se±alan a subclaves y cada subclave contiene informaci≤n acerca de los componentes opcionales instalados, asφ como informaci≤n necesaria para instalar un componente opcional nuevo. Por ejemplo, suponga que desea instalar Games como componente opcional. Para ver si Games estß instalado, busque el valor de la subclave siguiente debajo de la clave OptionalComponents:

"Games"="Games"

A continuaci≤n, abra la clave "Games" situada debajo de la clave de componentes opcionales para buscar lo siguiente:

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

Esto indica que el componente opcional Games no estß instalado en este equipo Windows, porque el indicador "Installed" tiene el valor 0.

Codificar una llamada a la funci≤n CreateProcess

Para instalar un componente opcional como Games, use los valores "INF" y "Section" de la clave anterior en una llamada a CreateProcess que ejecute Setupx.dll a travΘs de RUNDLL. Este mΘtodo hace exactamente lo mismo que Agregar o quitar programas en el Panel de control cuando instala un componente. La sintaxis del parßmetro lpCommandLine en la llamada a CreateProcess es la siguiente:

RunDll setupx.dll,InstallHinfSection <secci≤n> <modoDeReinicio> <nombreInf> 

Los valores de los parßmetros <secci≤n> y <nombreInf> son los de la clave del Registro descrita anteriormente. Por ejemplo, la llamada a CreateProcess siguiente instala el componente opcional Games y, si el programa de instalaci≤n de Windows determina que hay que reiniciar el equipo, pregunta al usuario si desea que se reinicie inmediatamente una vez que se complete la instalaci≤n. El significado de los valores del parßmetro <modoDeReinicio> se describe en la secci≤n "Usar el parßmetro modo de reinicio".

RunDll setupx.dll,InstallHinfSection games 4 applets.inf

Nota

La aplicaci≤n de instalaci≤n no debe ejecutar c≤digo despuΘs de que se realice una llamada a CreateProcess porque, una vez que Setupx.dll tiene el control, el c≤digo adicional puede ocasionar que se reinicie el equipo del usuario. Si el proceso de instalaci≤n tiene que ejecutar otro c≤digo despuΘs de que el suyo llame a CreateProcess, use la lista RunOnce del archivo .inf.

Nota

Hacer clic con el bot≤n secundario del mouse en un archivo .inf para ejecutarlo

El programa de instalaci≤n reconoce un nombre de secci≤n Install concreto, DefaultInstall, en los archivos .inf que instalan componentes opcionales. Si usa una secci≤n [DefaultInstall] en su archivo .inf, el usuario puede hacer clic con el bot≤n secundario del mouse en un icono del archivo .inf de la interfaz de usuario de las versiones de Windows de 32 bits para ejecutar la secci≤n [DefaultInstall]. Cuando el usuario hace clic con el bot≤n secundario del mouse en el icono de un archivo .inf, aparece un men· emergente donde el usuario puede seleccionar la opci≤n Install para ejecutar realmente la secci≤n [DefaultInstall].

Si utiliza una secci≤n Install denominada [DefaultInstall] en su archivo .inf, estarß ofreciendo un mΘtodo c≤modo de instalar el componente opcional. Esto es especialmente ·til durante el desarrollo de su aplicaci≤n. Si va a escribir una aplicaci≤n de instalaci≤n, dispondrß de un mΘtodo para instalar el componente opcional antes de desarrollar el c≤digo de la aplicaci≤n.

El siguiente es un ejemplo de secci≤n DefaultInstall que contiene entradas tφpicas:

[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 

Temas relacionados