2012-09-04 50 views
1

我有4个程序,我想打包成一个安装程序,并允许用户选择他们想要安装的程序。NSIS - 单选按钮来选择安装许多程序之一

我从来没有使用过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中设置卸载脚本,因为这已经完成了。

谢谢, Greg。

+0

为什么不能让用户在一次安装一个以上的程序? – Anders

+0

没有理由,您会如何更改代码以便安装他们选择的每个应用程序? – gfyans

+0

通过不使用单选按钮,只是复选框(又名不使用单节的东西) – Anders

回答

2

此代码与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属性来更改复选框的图标,如果你想...

+0

谢谢,安德斯,明天我会试试这个。 – gfyans