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.
[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
[Code]
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