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.

È stato utile?

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ò.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top