2

ini ファイルを使用して NSIS インストーラーにカスタム ページを追加しました。コードは次のとおりです。

.
.
.

    ; Welcome page
    !insertmacro MUI_PAGE_WELCOME
    Page custom customPage "" ": custom page"
.
.
.
Function customPage
   GetTempFileName $R0
   File /oname=$R0 customPage.ini
   InstallOptions::dialog $R0
   Pop $R1
   StrCmp $R1 "cancel" done
   StrCmp $R1 "back" done
   StrCmp $R1 "success" done
   error: MessageBox MB_OK|MB_ICONSTOP "InstallOptions error:$\r$\n$R1"
   done:
FunctionEnd
.
.
.

ここにcustomPage.iniファイルがあります

; Ini file generated by the HM NIS Edit IO designer.
[Settings]
NumFields=2

[Field 1]
Type=Label
Text=Select Version:
Left=4
Right=53
Top=16
Bottom=26

[Field 2]
Type=Combobox
Text=Combobox
ListItems=
Left=53
Right=138
Top=14
Bottom=107

NSIS スクリプトを使用してコンボボックスの値を動的に設定したいのですが、nsis でコンボボックスにアクセスするにはどうすればよいですか?

4

1 に答える 1

3

私は便利なコードを持っていませんが、基本的には、それを抽出した直後に実行する前に、そのiniファイルにini値を書き込むことですInstallOptions:dialog

!insertmacro INSTALLOPTIONS_WRITE "customPage.ini" "Field 2" "State" "Blah|Value2|Foo|Bar"

参照: http://nsis.sourceforge.net/Docs/InstallOptions/Readme.html

コードでは、リンク先の Web ページにあるように InstallOptions マクロを使用していないことに注意してください。代わりに、すべてを手動で行っています。通常、InstallOptions マクロは、カスタム ページの ini ファイルを plugins ディレクトリに抽出します。これは、通常のパターンに従っていないため、コード スニペットが機能しない可能性があることを意味します。したがって、上記が機能しない場合は、代わりに WriteINI を使用してみてください。ただし、概念は同じです。値を抽出した直後、表示する前に値をiniファイルに書き込みます。

于 2010-05-05T17:04:38.350 に答える