答案 0 :(得分:0)
您可以先创建一个Var IsEnterprise
或类似的全局变量。
要使实际页面正常工作,您可以在现有MUI_PAGE宏之间的某处插入页面命令
page EnterprisePageCreate EnterprisePageLeave
EnterprisePageCreate和EnterprisePageLeave应该是nsis函数,create函数应该创建页面,leave函数应该从单选按钮获取状态并将其保存在全局$ IsEnterprise中(你可以在下面找到有关如何执行此操作的信息) InstallOptions自述文件和示例)
稍后您可以在一个部分中使用$ IsEnterprise。
但是既然你已经有一个名为Enterprise的部分,我会假设您只想切换这一部分。如果是这种情况,则无需在var中保存状态,您可以使用EnterprisePageLeave函数中的sections.nsh中的宏切换“复选框”部分。
您还提到要跳转到InstFiles页面,查看您发布的脚本,我只是将自定义页面放在组件页面之前,当Enterprise无线电打开时,打开该部分,否则,转动它关闭并使其只读。
在一个不相关的说明中,仅当使用RequestExecutionLevel admin
时,UAC关闭或< Vista,你需要使用UserInfo插件来检测用户是否是管理员。
答案 1 :(得分:0)
结束使用nsDialogs。没有GUI,但从设计的角度看更多的控制。
让单选按钮页面工作正常,但在安装程序运行时它会显示带有“许可协议”子标题的自定义页面。
NSI代码:
名称“BlackBerry Desktop”
RequestExecutionLevel admin
一般符号定义
!定义VERSION 5.0.0.11
!定义公司RIM
!定义网址http://www.blackberry.com
MUI符号定义
!定义MUI_ICON Blackberry.ico
!定义MUI_LICENSEPAGE_RADIOBUTTONS
包含的文件
!包括Sections.nsh
!包括MUI2.nsh
!包括nsDialogs.nsh
!包括LogicLib.nsh
变量 Var / GLOBAL帐户类型
Var InstallerSelect
Var标签
Var Label_2
Var Label_3
Var RadioButton_1
Var RadioButton_2
Var / GLOBAL RadioButton_1_State
Var / GLOBAL RadioButton_2_State
保留档案
ReserveFile“$ {NSISDIR} \ Plugins \ AdvSplash.dll”
安装程序页面
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE license.txt
; Page Custom InstallerSelect InstallerSelectLeave
PageEx custom PageCallbacks InstallerSelect InstallerSelectLeave
标题“”
PageExEnd
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
安装人员语言
!insertmacro MUI_LANGUAGE英语
安装程序属性
OutFile“RIM_BlackBerry_Desktop_5.0.exe”
InstallDir“$ TEMP \ RIM BlackBerry Desktop 5.0安装文件”
CRCCheck on XPStyle上 ShowInstDetails隐藏
VIProductVersion 5.0.0.11
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
ProductName“BlackBerry Desktop”
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
ProductVersion“$ {VERSION}”
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
公司名称“$ {COMPANY}”
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
公司网站“$ {URL}”
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
FileVersion“$ {VERSION}”
VIAddVersionKey / LANG = $ {LANG_ENGLISH}
FileDescription“”VIAddVersionKey
/ LANG = $ {LANG_ENGLISH} LegalCopyright“”
;检查管理员功能
功能CheckAdmin
;检查当前用户是否具有管理员权限
userInfo :: getAccountType
pop $ AccountType
strCmp $ AccountType“Admin”+3
messageBox MB_OK“您没有管理员权限。$ \ n $ \ n安装已取消”
退出
返回
功能结束;选择安装类型页面功能
功能安装程序选择
nsDialogs :: create 1018
Pop $ InstallerSelect
${If} $InstallerSelect == error <br> Abort <br> ${EndIf} <br> ${NSD_CreateLabel} 0 0 100% 12u "Please select an installation type..." <br> Pop $Label <br> ${NSD_CreateLabel} 10% 30% 90% 20 "For users who are NOT on the Enterprise (Exchange) server" <br> Pop $Label_2 <br> ${NSD_CreateLabel} 10% 70% 90% 20 "For users who are on the Enterprise (Exchange) server" <br> Pop $Label_3 <br> ${NSD_CreateRadioButton} 5% 20% 100% 20 "Internet" <br> Pop $RadioButton_1 <br> ${NSD_CreateRadioButton} 5% 60% 100% 20 "Enterprise" <br> Pop $RadioButton_2 <br> ${If} $RadioButton_1_State == ${BST_CHECKED} <br> ${NSD_Check} $RadioButton_1 <br> ${EndIf} <br> ${If} $RadioButton_2_State == ${BST_CHECKED} <br> ${NSD_Check} $RadioButton_2 <br> ${EndIf} <br> nsDialogs::Show <br>
功能结束
功能InstallerSelectLeave
$ {NSD_GetState} $ RadioButton_1 $ RadioButton_1_State
$ {NSD_GetState} $ RadioButton_2 $ RadioButton_2_State
功能结束安装程序部分
部分 - 主要SEC0000
致电CheckAdmin
SetOutPath $INSTDIR\BB_MS SetOverwrite ifdiff File /r BB_MS\* SetOutPath $INSTDIR\Drivers SetOverwrite ifdiff File /r DRIVERS\* SetOutPath $INSTDIR\ISSetupPrerequisites SetOverwrite ifdiff File /r ISSetupPrerequisites\* SetOutPath $INSTDIR SetOverwrite ifdiff File "_setup.exe" File "0x0409.ini" File "Autorun.inf" File "BBDMUtil.dll" File "BlackBerry Desktop Software.msi" File "BlackBerrySetup.exe" File "Data1.cab" File "FLEXnet_patch_Q113020.exe" File "install.txt" File "install_ENT_silent.cmd" File "install_ENT_ui.cmd" File "install_INT_silent.cmd" File "install_INT_ui.cmd" File "setup.bmp" File "Setup_Internet.ini" File "Setup_Enterprise.ini" File "WindowsInstaller-KB893803-x86.exe"
检查选择的安装方法
StrCmp $ RadioButton_1_State 1 Internet 0
StrCmp $ RadioButton_2_State 1企业互联网Internet: <br> Execwait 'msiexec /i "$INSTDIR\Drivers\BlackBerry USB and Modem Drivers_ENG (DM5.0b28).msi" /passive /norestart' <br> Rename "$INSTDIR\Setup_Internet.ini" "$INSTDIR\Setup.ini" <br> Sleep 1000 <br> ExecWait '"$INSTDIR\BlackBerrySetup.exe" /S /v/passive' <br> Goto End <br>
企业:
Execwait'msiexec / i“$ INSTDIR \ Drivers \ BlackBerry USB和Modem Drivers_ENG(DM5.0b28).msi”/ passive / norestart'
重命名为“$ INSTDIR \ Setup_Enterprise.ini”“$ INSTDIR \ Setup.ini”
睡眠1000
ExecWait'“$ INSTDIR \ BlackBerrySetup.exe”/ S / v / passive'
结束:
SectionEnd
安装程序功能
功能.onInit
InitPluginsDir
推$ R1 文件/oname=$PLUGINSDIR\spltmp.bmp Blackberry.bmp
advsplash :: show 1000 600 400 0x666666 $ PLUGINSDIR \ spltmp
流行$ R1
Pop $ R1 FunctionEnd