Ver Mensaje Individual
  #9  
Antiguo 12-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita