Imagen de título
Referencia

Tratar carpetas y archivos mediante la utilización de archivos de información para la instalación (.INF)

Puede usar archivos .INF para tratar archivos y carpetas de varias formas. Las más importantes son:

Crear carpetas y vínculos en carpetas

Crear una carpeta en la carpeta Archivos de programa o crear vínculos en una carpeta es una operación que realiza el shell una vez que el componente se ha instalado. El programa de instalación busca en el archivo Setup.ini una sección [progman.groups] y, a continuación, la analiza para crear carpetas y vínculos en esas carpetas.

Si instala un componente que necesitará una carpeta o vínculos en la carpeta Archivos de programa, cree una sección UpdateInis para crear las entradas apropiadas en el archivo Setup.ini. El archivo Setup.ini emplea la siguiente sintaxis para crear carpetas y vínculos. Tenga en cuenta que las carpetas son relativas al menú Inicio.

[progman.groups]
carpeta_1=nombreCarpeta_1
carpeta_2=nombreCarpeta_2
:
carpeta_n=nombreCarpeta_n

[carpeta_1]
nombreVínculo, .nombreExe, nombreArchivoIcono, índiceIcono, perfil

Si el campo perfil tiene NULL a la izquierda, el vínculo siempre se agregará a la carpeta.

Notas

Ejemplo: Games

[Optional Components]
games

[games]
OptionDesc= %GAMES_DESC%
CopyFiles= wingames.files
UpdateInis= wingames.links
[wingames.files]
cards.dll
freecell.exe
freecell.hlp
mshearts.exe
mshearts.hlp
sol.exe
sol.hlp
winmine.exe
winmine.hlp

[wingames.links]
setup.ini, progman.groups,, "gamesfolder=%GAMES_DESC%" ;crea una carpeta
setup.ini, gamesfolder,, """Juego Solitario"",SOL.EXE,,," ;crea un vinculo
setup.ini, gamesfolder,, "Buscaminas,WINMINE.EXE,,," ;crea un vinculo
setup.ini, gamesfolder,, ""Juego de cartas Corazones"",MSHEARTS.EXE,,,";crea un vinculo
setup.ini, gamesfolder,, """Carta blanca"",FREECELL.EXE,,," ;crea un vinculo

Resultado: la entrada para "Games" aparecerá en el cuadro de diálogo Opcional Components en el programa lde instalación y, si se selecciona, se creará una carpeta Games en la carpeta Archivos de programa con vínculos a Solitario, Buscaminas, Corazones y Carta blanca.

Crear y eliminar nombres de archivo largos

La rama raíz del Registro para las operaciones de cambio de nombre es la siguiente:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RenameFiles

La rama raíz del Registro para las operaciones de eliminación es la siguiente:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DeleteFiles

Cada grupo de operaciones de cambio de nombre y eliminación se agrega a una subclave debajo de cada rama. Cada grupo de operaciones se limita a cambiar el nombre o eliminar los archivos de una única carpeta. Debe incluir, como mínimo, dos entradas en cada subclave para que surta efecto un cambio de nombre o una eliminación: la ruta de acceso de la carpeta de los archivos cuyo nombre se va a cambiar o se van a eliminar, y la operación de cambio de nombre o eliminación real.

La primera clave de cada grupo de operaciones es la entrada folder. Cada entrada para una operación de cambio de nombre en la carpeta relacionada es una entrada con el formato "nombreCortoAntiguo"="nombreLargoNuevo,[indicadorAtributo]".

El parámetro indicadorAtributo se usa para establecer atributos de archivo durante la operación de cambio de nombre. El indicador puede tener los valores siguientes.

1 READONLY
2 HIDDEN
3 SYSTEM

Para establecer varios atributos en un archivo o carpeta, los indicadores se suman; por ejemplo, para establecer los atributos READONLY y HIDDEN, indicadorAtributo debe ser 3.

El ejemplo siguiente es una sección AddReg que establece los atributos SYSTEM y HIDDEN para la carpeta \Windows\System\Sample:

HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Sys,,,%11% HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Sys,SAMPLE,,"SAMPLE,6"

Nota

Cada entrada para una operación de eliminación en la carpeta relacionada tiene el formato "nombreClaveArbitrario"="nombreLargoQueEliminar".

El ejemplo siguiente es una sección AddReg que:

[MiAplCortoALargo]
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Samples,,,C:\Samples
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Samples,nombrant.txt,,"Nombre Largo Nuevo.txt"
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Win,,,%25%
HKLM,Software\Microsoft\Windows\CurrentVersion\RenameFiles\Win,Mileame.txt,,"Leame De Mi Aplicacion.txt"

El ejemplo siguiente es una sección AddReg que:

[MiAplElimLargo]
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Samples,,,C:\Samples
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Samples,nombreant.txt,,"Nombre Largo Nuevo.txt"

HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Win,,,%25%
HKLM,Software\Microsoft\Windows\CurrentVersion\DeleteFiles\Win,Mileame.txt,,"Leame De Mi Aplicacion.txt"

Tras procesar los cambios de nombre y eliminaciones, las entradas se quitan del Registro.

Nota

Establecer atributos para archivos y carpetas

Para establecer los atributos de un archivo o carpeta, puede usar la misma convención que para crear nombres de archivo largos mediante un indicador opcional.

Para obtener más detalles, consulte la sección "Crear y eliminar nombres de archivo largos".

Copiar archivos a la carpeta Archivos de programa

En el ejemplo siguiente se copian tres archivos a la carpeta Archivos de programa\Accesorios y se crean vínculos a uno de los archivos:

[WordPadInstall]
CopyFiles = WordPadCopyFiles
UpdateInis = WordPadInis

[DestinationDirs]
WordPadCopyFiles = 24,%PROGRAMF%\%ACCESSOR%

[WordPadCopyFiles]
mswd6_32.wpc
wordpad.exe
write32.wpc

[WordPadInis]
setup.ini, progman.groups,, "group4=%APPS_DESC%" ;crea la carpeta Accesorios (si no está ya)
setup.ini, group4,, """%WORDPAD_LINK%"", ""%24%\%PROGRAMF%\%ACCESSOR%\WORDPAD.EXE""" ;crea un vínculo en la carpeta Accesorios

[Strings]
APPS_DESC = "Accesorios"
WORDPAD_LINK = "WordPad"
; Nombres de carpeta, tenga en cuenta que las versiones de nombre corto deben coincidir con las truncadas
; nombres de 8 caracteres para las versiones de nombre largo, o si no habrá problemas.
PROGRAMF = "Archiv~1" ; primeros 6 caracteres de Archivos_de_programa, + "~1"
ACCESSOR = "Acceso~1" ; primeros 6 caracteres de Accesorios, + "~1"

Limitaciones de los archivos .INF