Cómo mostrar un hipervínculo en Inno Setup?
-
18-09-2019 - |
Pregunta
Estoy haciendo una validación en mi instalador Inno Setup para comprobar si es o no se instala una actualización de Microsoft en la máquina, si no, que estoy mostrando un cuadro de mensaje simple que indica al usuario que la actualización es necesaria, esto es el código de mensaje:
MsgBox(
'Your system requires an update supplied by Microsoft. ' +
'Please follow this link to install it: ' +
'http://www.microsoft.com/downloads/details.aspx?FamilyID=1B0BFB35-C252-43CC-8A2A-6A64D6AC4670&displaylang=en',
mbInformation, MB_OK);
Quiero hacer la URL de un hipervínculo a la página web, pero no he sido capaz de averiguar cómo, es posible que en la disposición de Inno para añadir texto como un hipervínculo?
Gracias.
Solución
La función MsgBox()
en Inno Setup es un contenedor para el estándar de Windows función MessageBox()
, que yo sepa no soporta enlaces incorporados, así que no es posible mostrar simplemente el enlace allí.
Lo que podría hacer sin embargo es notificar al usuario de que la actualización es necesaria, y preguntarles si desea abrir el enlace en el navegador por defecto. Algo así como:
function InitializeSetup(): Boolean;
var
ErrCode: integer;
begin
if MsgBox('Your system requires an update supplied by Microsoft. Would you like to visit the download page now?', mbConfirmation, MB_YESNO) = IDYES
then begin
ShellExec('open', 'http://www.microsoft.com/downloads/details.aspx?FamilyID=1B0BFB35-C252-43CC-8A2A-6A64D6AC4670&displaylang=en',
'', '', SW_SHOW, ewNoWait, ErrCode);
end;
Result := False;
end;
Este código se abortará la instalación, pero se puede crear una página personalizada en lugar que comprueba si la actualización se ha instalado, y por otra parte impide la navegación a la página siguiente. Esto sólo funcionaría si la actualización se puede instalar sin un reinicio del sistema, sin embargo.