1

以下の条件を使用して、innosetup のサイレント インストールで .net Framework 4.5 をダウンロードしてインストールしたいのですが、.netframework 4.5 が利用可能かどうかを確認します。ここにコードを添付しました。

function Framework45IsNotInstalled: Boolean;
var
 bVer4x5: Boolean;
 bSuccess: Boolean;
 iInstalled: Cardinal;
 strVersion: String;
 iPos: Cardinal;
 ErrorCode: Integer;
begin
 Result := True;
 bVer4x5 := False;

 bSuccess := RegQueryDWordValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Install', iInstalled);
 if (1 = iInstalled) AND (True = bSuccess) then
  begin
    bSuccess := RegQueryStringValue(HKLM, 'Software\Microsoft\NET Framework Setup\NDP\v4\Full', 'Version', strVersion);
    if (True = bSuccess) then
     Begin
        iPos := Pos('4.5.', strVersion);
        if (0 < iPos) then bVer4x5 := True;

     End
  end;

 if (True = bVer4x5) then begin
    Result := False;

end;
ShellExec('', 'http://go.microsoft.com/fwlink/?LinkId=225702','{app}', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);

end; 

今、私の疑問は、ダウンロードを開始するとWebブラウザが開き、.netフレームワークが自動的にインストールされないことです。ユーザーは手動でインストールする必要があります。 .このタスクを達成するためのアイデアを得ることができますか??

4

1 に答える 1

1

を使用ShellExec()してデフォルトのブラウザに何かをダウンロードするように指示すると、その動作を制御できなくなります。後で実行できるようにしたい場合は、InnoTools Downloaderなどの統合されたダウンローダーを使用するか、インストール時に実行するようにユーザーに依頼する必要があります。

于 2013-04-26T16:18:28.143 に答える