Come mostrare un collegamento ipertestuale in Inno Setup?
-
18-09-2019 - |
Domanda
Sto facendo una convalida della mia installazione Inno Setup per verificare se non è installato un aggiornamento di Microsoft sulla macchina, se non, sto mostrando una semplice finestra di messaggio che l'utente che è necessario l'aggiornamento, questo è il codice messaggio:
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);
Voglio fare l'URL di un collegamento ipertestuale alla pagina web, ma non sono stato in grado di capirlo come, è possibile in Inno Setup per aggiungere il testo come un collegamento ipertestuale?
Grazie.
Soluzione
La funzione MsgBox()
in Inno Setup è un wrapper per lo standard di Windows funzione MessageBox()
, che per quanto ne so non supporta link incorporati, quindi non è possibile mostrare semplicemente il link lì.
Che cosa si potrebbe fare comunque è quello di informare l'utente che è necessario l'aggiornamento, e chiedere loro se aprire il collegamento nel browser predefinito. Qualcosa di simile:
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;
Questo codice interrompere l'installazione, ma si potrebbe creare una pagina personalizzata invece che verifica se l'aggiornamento è stato installato, e altrimenti impedisce la navigazione alla pagina successiva. Questo potrebbe funzionare solo se l'aggiornamento può essere installato senza un riavvio del sistema, però.