PDA

Ver la Versión Completa : Crear Instalador de INNo setup desde delphi


alquimista
18-04-2012, 15:07:18
Hola...
Alguien sabe como crear un archivo setup.exe (por ejemplo) desde delphi.
Usando por ejemplo Inno Setup.
El programa en delphi necesitará conocer
un EXE que es fijo
y varios archivos que serán variables y estaran en carpetas diferentes

Es que he hecho un editor de preguntas de test y quiereo que el test ejecutable
se cree un un instalable con las preguntas y archivos de datos.
Para poder instalar en varios pcs...

Gracias...

cloayza
18-04-2012, 15:22:33
Según la ayuda de InnoSetup, deberia ser así:

compil32 /cc "c:\isetup\samples\my script.iss"


Algo mas de información:

•Scripts can also be compiled by the Setup Compiler from the command line. Command line usage is as follows:

compil32 /cc <script name>

Example:
compil32 /cc "c:\isetup\samples\my script.iss"
As shown in the example above, filenames that include spaces must be enclosed in quotes.

Running the Setup Compiler from the command line does not suppress the normal progress display or any error messages. The Setup Compiler will return an exit code of 0 if the compile was successful, 1 if the command line parameters were invalid, or 2 if the compile failed.

•Alternatively, you can compile scripts using the console-mode compiler, ISCC.exe. Command line usage is as follows:

iscc [options] <script name>

Or to read from standard input:

iscc [options] -

Example:
iscc "c:\isetup\samples\my script.iss"
As shown in the example above, filenames that include spaces must be enclosed in quotes.

Valid options are: "/O" to specify an output path (overriding any OutputDir setting in the script), "/F" to specify an output filename (overriding any OutputBaseFilename setting in the script), "/S" to specify a Sign Tool, "/Q" for quiet compile (print only error messages), and "/?" to show a help screen.

Example:
iscc /Q /O"My Output" /F"MyProgram-1.0" /Sbyparam=$p "c:\isetup\samples\my script.iss"
ISCC will return an exit code of 0 if the compile was successful, 1 if the command line parameters were invalid or an internal error occurred, or 2 if the compile failed.

•The Setup Script Wizard can be started from the command line. Command line usage is as follows:

compil32 /wizard <wizard name> <script name>

Example:
compil32 /wizard "MyProg Script Wizard" "c:\temp.iss"
As shown in the example above, wizard names and filenames that include spaces must be enclosed in quotes.

Running the wizard from the command line does not suppress any error messages. The Setup Script Wizard will return an exit code of 0 if there was no error and additionally it will save the generated script file to the specified filename, 1 if the command line parameters were invalid, or 2 if the generated script file could not be saved. If the user cancelled the Setup Script Wizard, an exit code of 0 is returned and no script file is saved.

Saludos

alquimista
18-04-2012, 15:45:25
Vamos que tendre que crear el script a mano y hacer una llamada con
ShellExecute o similar. Me imagino que habra que añadir al directorio todas las dll de INno setup.

Gracias, por la respuesta tan ràpida.
A ver si me apaño

alquimista
19-04-2012, 02:25:58
Gracias por la ayuda...
Ya he creado el script desde delphi y ejecutado el compilador sin problemas.

try
Script := TStringList.Create;
Script.LoadFromFile(strdirapp+'test.iss');
INx:=Script.IndexOf('[Files]');
....

Localizo la sección [Files] e inserto a partir del Indice Inx los archivos a añadir en el script

Luego he utilizado una función de Delphi al limite EjecutarYEsperar

tmpstr:= directorioaplicacion+'compil32 /cc "script.iss"';
if EjecutarYEsperar(tmpstr,SW_SHOWNORMAL)=0 then
//Mensaje de OK
else
//mensaje fallo
//Abro la carpeta donde se ha generado el instalador
ShellExecute(Handle,'explore',Pchar(directorioaplicacion+'inst'),'','',SW_SHOWNORMAL);


Si alguien necesita ayuda que lo diga