Usarás la utilidad IsTool ¿verdad?, así espero por tu comodidad
Pues ejemplo práctico:
Creo el instalador de un programa, y añado un archivo "NTDETECT.COM" tú tambien lo tendrás en c:\ así que puedes compilar el ejemplo que pongo.
Lo que hago es lo siguiente:
- Añado el archivo ntdetect y le digo que el directorio de destino es el TMP de la máquina de destino.
- En el apartado de instalar, lo mando a ejecutar con el parámetro /silent (en este caso no tiene sentido, pero bueno, es un ejemplo.
-Acabada la instalación,
se borra el archivo ntdetect.com del directorio TMP el tuyo que existe en c:\ no se toca
.
Además uso un "check", es decir, si se cumple una condición (en este caso si existe el "autoexec.bat") se copia el archivo .COM al directorio TMP y despues se intenta ejecutar. Si el archivo autoexec.bat no existe, no se hace nada de lo mencionado.
Los apartados "interesantes" son Files, Run y code.
Código:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "My Program"
#define MyAppVerName "My Program 1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.mycompany.com"
#define MyAppExeName "MyProg.exe"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\My Program Directory
DefaultGroupName={#MyAppName}
OutputDir=C:\temp
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: english; MessagesFile: compiler:Default.isl
Name: spanish; MessagesFile: compiler:Languages\Spanish.isl
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
[Files]
Source: C:\Archivos de programa\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\NTDETECT.COM; DestDir: {tmp}; Check: Instalarntdetect; Flags: deleteafterinstall
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}
Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon
[Run]
Filename: {tmp}\NTDETECT.COM; Parameters: " /silent"; WorkingDir: {tmp}; Flags: waituntilidle; Check: INSTALARNTDETECT
[ Code ]
{Todas las funciones funciones que se usan en un "check" deben ser
funciones que devuelvan un Boolean}
function INSTALARNTDETECT:Boolean;
begin
{la comprobación que hago es insulsa, pero
creo que se entenderá el uso}
Result := fileExists('c:\autoexec.bat')
end;
Saludos