On Wed, 20 Aug 2014 13:27:06 -0400, Hugo Florentino wrote:
Existe una herramienta libre llamada Inno Setup [...]
Después de sugerir Inno Setup, me entró curiosidad por juguetear con el
para hacer un script de instalación de actualizaciones.
Aunque tanto Windows como ESET sean productos privativos, Inno Setup es
libre y muy útil para resolver problemas en instituciones donde hay
aplicaciones que solo corren en Windows, de modo que aprovecho para
poner aquí el script.
No es nada especial, la idea es aprovechar la funcionalidad avanzada de
Inno Setup para autodetectar la ruta al servidor de actualizaciones que
se haya configurado en el equipo donde se haga la instalación, eliminar
los archivos de actualización y copiar los nuevos en esa misma ruta. En
el script, obviamente hay que reemplazar C:\eset_upd por la ruta real a
los archivos de actualización.
También podría utilizarse el preprocesador de Inno Setup para detectar
además la ruta donde se genera el mirror en el servidor o equipo que
descarga las actualizaciones (donde se supone que se compilará el
instalador), pero mejor dejar esto como estudiuo individual o para una
posible iteración futura.
Un ejemplo de línea de comando para automatizar la compilación:
"C:\Program Files (x86)\Inno Setup 5\Compil32.exe" /cc
"C:\ScriptdeInno\ActualizaESET.iss" /q
[Setup]
InternalCompressLevel=fast
OutputBaseFilename=ActualizaESET
Compression=lzma/fast
AppName=ActualizaESET
AppVerName=ActualizaESET 0.1
AppMutex=actueset-0.1
DefaultDirName={code:GetESETUpdServerPath}
ShowLanguageDialog=auto
AppVersion=0.1
MinVersion=,5.0.2195
TimeStampsInUTC=true
AllowUNCPath=false
PrivilegesRequired=none
DisableProgramGroupPage=true
Uninstallable=false
[Languages]
Name: es; MessagesFile: compiler:Languages\Spanish.isl
[Files]
Source: C:\eset_upd\*.*; DestDir: {app}
[InstallDelete]
Name: {app}; Type: filesandordirs
[Code]
const
ESETProfilesRegKey = 'SOFTWARE\ESET\ESET
Security\CurrentVersion\Plugins\01000400\Profiles';
var
RootKeyArch: Variant;
function InitializeSetup(): Boolean;
begin
if IsWin64() then
begin
RootKeyArch := HKEY_LOCAL_MACHINE_64;
Result := True;
end else
begin
RootKeyArch := HKEY_LOCAL_MACHINE;
Result := False;
end;
end;
function GetActiveProfile(): String;
begin
if not RegQueryStringValue(RootKeyArch, ESETProfilesRegKey, 'Active',
Result)
then MsgBox('Error: Imposible obtener el perfil de actualizaciones.',
mbError, MB_OK);
end;
function GetProfileServer(): String;
begin
if not (RegQueryStringValue(RootKeyArch, ESETProfilesRegKey + '\' +
GetActiveProfile, 'SelectedServer', Result))
then MsgBox('Error: Imposible obtener la ruta del servidor de
actualizaciones.', mbError, MB_OK);
end;
function GetESETUpdServerPath(Param: String): String;
var
vs: String;
begin
try
vs := GetProfileServer();
except
vs := ExpandConstant('{userdocs}') + '\eset_upd';
end;
Result := vs;
end;
--
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que est� limpio.
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l