2009-09-29 19 views
9

Dokonuję sprawdzania poprawności w moim instalatorze Inno Setup, aby sprawdzić, czy aktualizacja Microsoftu jest zainstalowana na komputerze, jeśli nie, wyświetlam prosty komunikat z informacją, że aktualizacja jest wymagana, to jest Kod wiadomość:Jak wyświetlić hiperlink w programie Inno Setup?

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); 

Chcę, aby URL hiperłącze do strony internetowej, ale nie byłem w stanie zrozumieć to, jak jest to możliwe w Inno Setup aby dodać tekst jako hiperłącze?

Dzięki.

Odpowiedz

13

Funkcja MsgBox() w Inno Setup to otoki dla standardowej funkcji Windows MessageBox(), której AFAIK nie obsługuje odsyłaczy osadzonych, więc nie można po prostu pokazać tam odnośnika.

Można jednak powiadomić użytkownika, że ​​aktualizacja jest wymagana, i zapytać, czy otworzyć łącze w domyślnej przeglądarce. Coś jak:

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; 

Ten kod będzie przerwać instalację, ale można utworzyć stronę niestandardową zamiast, który sprawdza, czy aktualizacja została zainstalowana, a poza tym zapobiega nawigację do następnej strony. Działa to tylko wtedy, gdy aktualizację można zainstalować bez restartu systemu.

+1

Podana odpowiedź działa poprawnie w systemie Windows 7, ale nie w systemie Windows 8 (nie w mojej konfiguracji przynajmniej). Musiałem zmienić 'ShellExec' na' ShellExecAsOriginalUser'. –

+0

@JensHolstSchumacher: Dziękuję, możesz edytować odpowiedź z tymi informacjami o rozszerzeniu, które następnie zostaną zatwierdzone przez bardziej doświadczonego użytkownika. – Deanna