elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [INNO Setup] Que estoy haciendo mal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [INNO Setup] Que estoy haciendo mal  (Leído 4,442 veces)
rusco

Desconectado Desconectado

Mensajes: 7


Ver Perfil
[INNO Setup] Que estoy haciendo mal
« en: 5 Febrero 2013, 22:24 pm »


[MOD] USA TÍTULOS DESCRIPTIVOS!



Hola,

Que estoy haciendo mal, el script del innosetup me instala dos veces el archivo (Numisoftware.mde)

Este que esta dentro dew Numisoftware sobra:
C:\Numisoftware\
Actualiza
DatosNumi
Programa
Numisotware.mde

Lo correcto es:
C:\Numisoftware\
Actualiza
DatosNumi
Programa\Numisoftware.mde

Os dejo el script par ver donde tengo el error.
Código:
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{561F01CD-4A2F-4E84-B650-F586E2493B8E}
AppName=Numisoftware
AppVerName=Numisoftware 1.0
VersionInfoVersion=1.0
AppPublisher=Numisoftware
AppPublisherURL=http://www.numisoftware.com/
AppSupportURL=http://www.numisoftware.com/
AppUpdatesURL=http://www.numisoftware.com/
DefaultDirName=C:\
DisableDirPage=yes
DefaultGroupName=Numisoftware
DisableProgramGroupPage=yes
LicenseFile=C:\Numisoftware\Programa\Licencias\Lic enciaES.rtf
OutputDir=C:\Instalador
OutputBaseFilename=Numsetup
SetupIconFile=C:\Numisoftware\Programa\Iconos\numi software.ico
Compression=lzma
SolidCompression=yes
AppCopyright=Copyright © 2011 by NUMISOFTWARE
VersionInfoCompany=NUMISOFTWARE
WizardImageFile=compiler:WizModernImage-IS.bmp
WizardSmallImageFile=compiler:WizModernSmallImage-IS.bmp
WindowVisible=true
VersionInfoDescription=Software para la gestión de colecciones
VersionInfoTextVersion=Numisoftware 1.0
ShowUndisplayableLanguages=true

[Languages]
Name: en; MessagesFile: compiler:Languages\English.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LicenseIN.rtf
Name: es; MessagesFile: compiler:Languages\Spanish.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LicenciaES.rtf
Name: catalan; MessagesFile: compiler:Languages\Catalan.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LlicènciaCAT.rt f
Name: french; MessagesFile: compiler:Languages\French.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LicenceFR.rtf
Name: german; MessagesFile: compiler:Languages\German.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LizenzDE.rtf
Name: portuguese; MessagesFile: compiler:Languages\Portuguese.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LicençaPO.rtf
Name: italian; MessagesFile: compiler:Languages\Italian.isl; LicenseFile: C:\Numisoftware\Programa\Licencias\LicenzaIT.rtf


[Files]
;Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}; Flags: ignoreversion
Source: C:\Numisoftware\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Numisoftware\Programa\Iconos\numisoftware.ico; DestDir: {app}\Programa\Iconos; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\Numisoftware\Programa\Referencias\Dao360.dll; DestDir: {sys}; Flags: sharedfile restartreplace regserver noregerror
Source: C:\Numisoftware\Programa\Referencias\FM20.dll; DestDir: {sys}; Flags: sharedfile restartreplace regserver noregerror
Source: C:\Numisoftware\Programa\Referencias\MSO.DLL; DestDir: {sys}; Flags: sharedfile restartreplace regserver noregerror
Source: C:\Numisoftware\Programa\Referencias\msado21.tlb; DestDir: {sys}; Flags: sharedfile restartreplace regtypelib noregerror
Source: C:\Numisoftware\Programa\Referencias\stdole2.tlb; DestDir: {sys}; Flags: sharedfile restartreplace regtypelib noregerror
Source: C:\Numisoftware\Programa\Dlls\MouseWheelVScroll.dl l; DestDir: {sys}; Flags: sharedfile restartreplace regserver noregerror
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: {group}\Numisoftware; Filename: {app}\Programa\Numisoftware.mde; WorkingDir: {app}; IconFilename: {app}\Programa\Iconos\numisoftware.ico; IconIndex: 0
Name: {userdesktop}\Numisoftware; Filename: {app}\Programa\Numisoftware.mde; WorkingDir: {app}; IconFilename: {app}\Programa\Iconos\numisoftware.ico; IconIndex: 0
Name: {group}\{cm:UninstallProgram,Numisoftware}; Filename: {uninstallexe}; WorkingDir: {app}; IconFilename: {app}\Programa\Iconos\numisoftware.ico; IconIndex: 0

[Run]
Filename: {app}\Programa\Scripts\SeguridadAccess2003.vbs; Check: fVersion('0010'); Flags: shellexec; Parameters: 1
Filename: {app}\Programa\Scripts\cc2010.exe; Check: fVersion('0001') or fVersion('0101'); Parameters: /cn C:\Numisoftware Description: {cm:LaunchProgram,cc2010}; Flags: waituntilterminated
;Filename: {app}\Programa\Scripts\cc2010.exe; Check: fVersion('0101'); Parameters: /cn C:\Numisoftware Description: {cm:LaunchProgram,cc2010}; Flags: waituntilterminated

Código:

function fVersionAccess(): Byte;
var
localAccess : String;
loaded: String;
begin
Result := 0;
RegQueryStringValue( HKLM,'Software\Microsoft\Windows\CurrentVersion\Ap p Paths\Msaccess.exe','path',loaded );
RegQueryStringValue( HKLM,'Software\Microsoft\Office\9.0\Access\Install Root','Path',localAccess );
if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
Result:=1; //Access 2000
localAccess := '';
RegQueryStringValue( HKLM,'Software\Microsoft\Office\10.0\Access\Instal lRoot','Path',localAccess );
if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
Result := 2; //Access 2002
localAccess := '';
RegQueryStringValue( HKLM,'Software\Microsoft\Office\11.0\Access\Instal lRoot','Path',localAccess );
if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
Result := 3; //Access 2003
localAccess := '';
RegQueryStringValue( HKLM,'Software\Microsoft\Office\12.0\Access\Instal lRoot','Path',localAccess );
if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
Result := 4; //Access 2007
localAccess := '';
RegQueryStringValue( HKLM,'Software\Microsoft\Office\14.0\Access\Instal lRoot','Path',localAccess );
if fileexists(localAccess + '\MsAccess.exe') then
if localAccess = loaded then
Result := 5; //Access 2010
end;


function fversion(version: String): Boolean;
begin
result:=false;
Case version of
'1110': begin
if not fVersionAccess()=4 then // Si no tiene Access 2007
result:=true;
end;
'0011': begin
if not fVersionAccess()=5 then // Si no tiene Access 2010
result:=true;
end;
'1100': begin
if not fVersionAccess()=3 then // Si no tiene Access 2003
result:=true;
end;
'0001': begin
if fVersionAccess()=4 then //Access 2007
result:=true;
end;
'0010': begin
if fVersionAccess()=3 then //Access 2003
result:=true;
end;
'0101': begin
if fVersionAccess()=5 then //Access 2010
result:=true;
end;
end;
end;

function IsAccessRuntimeInstalled(): Boolean;
begin
Result := RegKeyExists (HKLM, 'SOFTWARE\Microsoft\Office\14.0\Registration\{9012 0000-001C-0C0A-0000-0000000FF1CE}');
end;


Saludos, ximo


« Última modificación: 5 Febrero 2013, 23:20 pm por EleKtro H@cker » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Que estoy haciendo mal
« Respuesta #1 en: 5 Febrero 2013, 23:19 pm »

1.
Código:
DefaultDirName=C:\

Tu instalador sólo funcionará en equipos que dispongan de la unidad C:\, debes usar la constante adecuada:
Código:
DefaultDirName={sd}

2.
Código:
Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}; Flags: ignoreversion

Estás indicando en el directorio de destino la ruta "C:\":
{app} = DefaultDirName = C:\

Entonces haz esto:
Código:
Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}\Programa\; Flags: ignoreversion

Y eso equivaldría a:
Código:
C:\Programa\Numisoftware.mde

Saludos


En línea

rusco

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: [INNO Setup] Que estoy haciendo mal
« Respuesta #2 en: 5 Febrero 2013, 23:39 pm »

Hola,

Gracias Elektro, solo con un par de modificaciones a sido suficiente, solo una duda, como dices que un pc puede no tener Unidad C:\, se que las letras se pueden cambiar pero sería nefasto para mi que C no estubiese en la pc que se instale, no por el instalador que es lo de menos, si no por la propia aplicación que apunta a C:\ y así se donde esta cada cosa, de lo contrario tendría que cambiar esto y meterlo en un archivo *.ini.

Bueno esta son las modificaciones hechas.

DefaultDirName=C:\Numisoftware

Source: C:\Numisoftware\Programa\Numisoftware.mde; DestDir: {app}\Programa\; Flags: ignoreversion


Lo dicho muchas gracias, saludos.
ximo
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: [INNO Setup] Que estoy haciendo mal
« Respuesta #3 en: 5 Febrero 2013, 23:57 pm »

La letra de unidad se puede modificar muy fácilmente, y "C:\" no tiene porque ser siempre la unidad principal, en muchos casos es "D:\", y si tu APP depende de rutas del sistema, pues... bueno, irá en el 99,9% de PC's, eso también te lo digo xD.

Espero que no te ofendas pero sincéramente eso de desarrollar una aplicación utilizando "C:\" (o cualquier otra ruta absoluta del sistema) para cosas importantes en lugar de usar la variable que contiene el valor de la letra del disco duro (o de la ruta absoluta del sistema) lo véo muy mala práctica e ineficáz,
usa las variables de Windows, que para algo están. :P

PD: Me alegra haberte podido ayduar.

Un saludo.
« Última modificación: 6 Febrero 2013, 00:02 am por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Traduciendo Inno Setup
Programación Visual Basic
karmany 2 3,018 Último mensaje 16 Enero 2006, 19:23 pm
por Kizar
Tutorial de Inno Setup 5.1.8
Programación General
karmany 4 10,029 Último mensaje 19 Mayo 2014, 20:04 pm
por tom1260
Inno Setup Compiler + Visual Basic 6.0
Programación Visual Basic
renga73 2 4,097 Último mensaje 22 Febrero 2008, 16:25 pm
por karmany
[APORTE] [Inno Setup] Plantilla para usarla como script por defecto.
Scripting
Eleкtro 0 6,987 Último mensaje 17 Abril 2013, 13:21 pm
por Eleкtro
InnoExtractor, novedosa aplicación para desempaquetar instaladores de Inno Setup « 1 2 »
Ingeniería Inversa
Kuvik 17 27,177 Último mensaje 20 Abril 2020, 06:28 am
por Kuvik
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines