2

我有 4 个程序,我想将它们打包到一个安装程序中,并允许用户选择他们想要安装的程序。

我以前从未使用过 NSIS,但有人建议我试一试,但是,我不知道从哪里开始。

基本上我只需要一个页面,要求用户选择一个单选按钮,然后单击下一步安装以下程序之一:

-- Install components --------------------

Select a program from the list below and
click Next to continue.

O Program 1
O Program 2
O Program 3
O Program 4


-------------------------------------------

Cancel                                 Next

然后根据他们的选择启动 program1_setup.exe 或 program2_setup.exe 等。

由于我的 4 个程序中的每一个本身都是安装程序,因此我认为我不需要在 NSIS 中设置卸载脚本,因为这已经处理好了?

谢谢,格雷格。

4

1 回答 1

3

此代码类似于one-section.nsi示例。

...

!include sections.nsh

Page components
Page instfiles

Section /o "Program 1" P1
File "/oname=$pluginsdir\Setup.exe" "myfiles\Setup1.exe"
SectionEnd

Section "Program 2" P2
File "/oname=$pluginsdir\Setup.exe" "myfiles\Setup2.exe"
SectionEnd

Section ; Hidden section that runs the show
DetailPrint "Installing selected application..."
SetDetailsPrint none
ExecWait '"$pluginsdir\Setup.exe"'
SetDetailsPrint lastused
SectionEnd

Function .onInit
Initpluginsdir ; Make sure $pluginsdir exists
StrCpy $1 ${P2} ;The default
FunctionEnd

Function .onSelChange
!insertmacro StartRadioButtons $1
    !insertmacro RadioButton ${P1}
    !insertmacro RadioButton ${P2}
!insertmacro EndRadioButtons
FunctionEnd

如果需要,您可以使用该CheckBitmap属性来更改复选框图标...

于 2012-09-04T20:15:53.533 回答