2009-09-29 27 views
9

我在我的Inno安裝程序安裝程序中進行驗證,以檢查是否在計算機上安裝了Microsoft更新,如果沒有,我將顯示一個簡單的消息框,告訴用戶需要更新,這是消息代碼:如何在Inno安裝程序中顯示超鏈接?

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

我想使URL的超鏈接到網頁,但我一直沒能弄清楚它是如何,是Inno Setup的可以添加文字作爲超鏈接?

謝謝。

回答

13

Inno Setup中的MsgBox()函數是標準Windows MessageBox()函數的封裝,AFAIK不支持嵌入式鏈接,因此無法簡單地在其中顯示鏈接。

但是,您可以做的是通知用戶需要更新,並詢問他們是否在默認瀏覽器中打開鏈接。喜歡的東西:

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; 

此代碼將中止安裝,但您可以創建自定義的頁面,而不是它檢查更新是否已安裝,否則阻止導航到下一個頁面。但是,如果可以在沒有系統重啓的情況下安裝更新,這隻會起作用。

+1

提供的答案在Windows 7上正常工作,但在Windows 8上沒有(至少不是我的設置)。我不得不將'ShellExec'改成'ShellExecAsOriginalUser'。 – 2012-09-21 14:07:56

+0

@JensHolstSchumacher:謝謝,您可以使用該extar信息編輯答案,然後將由更體驗用戶批准。 – Deanna 2012-09-24 10:06:44

相關問題