2009-09-29 4 views
9

컴퓨터에 Microsoft 업데이트가 설치되어 있는지 확인하기 위해 Inno 설치 프로그램 설치 프로그램에서 유효성 검사를하고 있습니다. 그렇지 않은 경우 사용자에게 업데이트가 필요함을 알리는 간단한 메시지 상자가 표시됩니다. 메시지 코드 :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); 

나는 URL 웹 페이지에 하이퍼 링크를 만들고 싶어,하지만 난 하이퍼 링크로 텍스트를 추가 이노 설정에서 가능하다 방법을 알아낼 수 없었다?

감사합니다.

답변

13

이노 설정의 MsgBox() 기능은 AFAIK가 포함 된 링크를 지원하지 않는 표준 Windows MessageBox() 기능의 래퍼입니다, 그래서 그것은 단순히 거기에 링크를 표시 할 수 없습니다.

그러나 사용자에게 업데이트가 필요함을 알리고 기본 브라우저에서 링크를 열 것인지 묻는 것이 좋습니다. 같은 뭔가 :

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'로 변경해야했습니다. –

+0

@ JensHolstSchumacher : 감사합니다. 그 외의 정보로 답을 편집 할 수 있습니다.이 정보는 경험이 많은 사용자가 승인하게됩니다. – Deanna