2017-11-03 26 views
0

インストールを完了する前にチェックボックスを追加する方法を知りたいと思います。このチェックボックスをオンにすると、ファイルをダウンロードする必要があります。感謝します。Innoセットアップ:チェックボックスをオンにしてチェックボックスを追加してファイルをダウンロードします。

+0

これはあまりにも曖昧です。 *「インストール完了前にチェックボックスを追加する」*とは何ですか?それはどのようにチェックボックスを追加する場所を定義しますか?どこからダウンロードしますか? HTTP、FTP、または何ですか?どこにダウンロードしますか?何を試しましたか? –

+0

チェックボックスは、ユーザに第2のシステムをダウンロードしてインストールするかどうかを尋ねます。すべてのスクリプトとインストール手順が除外されたら、画面に表示されます。オンにすると、HTTP経由で別のインストーラーを下げ、ダウンロードしたアプリケーションをインストールする必要があります。翻訳エラーがありましたら申し訳ありません。 – Mylon

+0

この情報をあなたの質問に編集してください! –

答えて

0

インストールページ(wpInstalling)の後にカスタムオプションページ(CreateInputOptionPage)を作成できます。

ユーザーが選択した場合は、Inno Download Pluginを使用してダウンロードをトリガーします。

アップロード後、たとえば「完了」ページ(wpFinished)が表示されたら、ダウンロードしたアプリケーションを実行します。

[Code] 

#include "idp.iss" 

var 
    DownloadOptionPage: TInputOptionWizardPage; 

procedure InitializeWizard(); 
begin 
    DownloadOptionPage := 
    CreateInputOptionPage(wpInstalling, 
     'Additional download', 
     'Select what additional components do you want to download and install.', 
     '', False, False); 
    DownloadOptionPage.Add('Something'); 
    idpDownloadAfter(DownloadOptionPage.ID); 
end; 

function NextButtonClick(CurPageID: Integer): Boolean; 
begin 
    Result := True; 

    if CurPageID = DownloadOptionPage.ID then 
    begin 
    if DownloadOptionPage.Values[0] then 
    begin 
     idpAddFile(
     'https://www.example.com/something.exe', ExpandConstant('{tmp}\something.exe')); 
    end; 
    end; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
var 
    FileName: string; 
    ResultCode: Integer; 
begin 
    if CurPageID = wpFinished then 
    begin 
    FileName := ExpandConstant('{tmp}\something.exe'); 
    if FileExists(FileName) then 
    begin 
     if not Exec(FileName, '', '', SW_SHOW, ewNoWait, ResultCode) then 
     begin 
     MsgBox(Format('Error executing %s', [FileName]), mbError, MB_OK); 
     end; 
    end; 
    end; 
end; 

Download options page

Download page


インストールが終了した後でもないInno Setupのもダウンロードプラグインは、実際に何かをするように設計されていませんけれども。たとえば、"キャンセル"ボタンが非表示になっているため、ダウンロードをキャンセルすることはできません。さらに悪いことに、ダウンロードが何らかの理由で失敗した場合、インストーラを終了することはできません。

これはおそらく回避することができます。

しかし、標準のワークフローを使用する代わりに、すべてのユーザーオプションが収集され、依存関係がの場合は、インストール前ににダウンロードされます。

関連する問題