2016-12-19 25 views
-2

私はsample.exeというインストーラファイルを持っています。このexeファイルには、ポート番号、インストールディレクトリなどを定義する必要のあるコンポーネントがいくつかあります。このsample.exeファイルをtest.exeという別のインストーラにバンドルする必要があります。だから私は、test.exeをインストールしようとすると、それはまた、sample.exeをインストールする必要があります。私はこれを実現するためのオプションがありますが、test.exeをインストールしている間、sample.exeのポート、ディレクトリパスを入力するためのオプションを提供する方法はありますか?私はnsisの初心者ですし、参考文献の例は私には大いに役立ちます。前もって感謝します。nsisスクリプトを使用してexeファイルを別のexeファイルにバンドルする方法

答えて

0

(インストーラー)ページこれらの値が入力されている場合は、を作成する必要があります。このため

使用nsDialogs(推奨):http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html

あなたの仕様ではなく例をチェックし、それらから提供されたコードスニペットを使用して、本当に曖昧であるとして、このための厳密解はありません。

0

通常、ディレクトリページを使用して、ユーザーにインストールディレクトリを選択させます。非標準ユーザー入力は、nsDialogsプラグインを使用してカスタムページに記録できます。

Name "Foo" 
OutFile "TestSetup.exe" 
RequestExecutionLevel admin 
InstallDir "$ProgramFiles\Test" 
!define DEFAULTPORT 666 

!include nsDialogs.nsh 

Var MyPort 
Var PortEdit 

Function .onInit 
StrCpy $MyPort "${DEFAULTPORT}" 
FunctionEnd 

Page Directory 
Page Custom MyPageCreate MyPageLeave 
Page InstFiles 


Function MyPageCreate 
nsDialogs::Create 1018 
Pop $0 

${NSD_CreateLabel} 0u 10% 20u 12u "Port: " 
Pop $0 

${NSD_CreateNumber} 20u 10% 40u 12u "$MyPort" 
Pop $PortEdit 

nsDialogs::Show 
FunctionEnd 

Function MyPageLeave 
${NSD_GetText} $PortEdit $MyPort 
FunctionEnd 

Section 
SetOutPath $InstDir 
File "Sample.exe" 

; Write the chosen port to a config file: 
WriteIniStr "$InstDir\Config.ini" "Network" "Port" "$MyPort" 
SectionEnd 
関連する問題