通过Eclipse自定义单选按钮INI页面
我正在使用Eclipse的create InstallOptions菜单创建一个自定义INI页面,其中包含用于重新打包Blackberry桌面安装程序的单选按钮 每种类型有两个部分:互联网和企业 我需要一个用户选择2个选项中的一个,根据他们的选择,页面将继续在自定义页面中选择的选项,跳转到INSTFILES页面,并继续到最后 我找不到任何关于在脚本中加载INI页面的具体文档,我可能搜索不正确,然后根据我猜的字段将数据从一个页面传递到下一个页面 感谢您的帮助。即使是为了告诉我我是盲人,无法阅读文档,但链接会有所帮助: 以下是INI代码: );由EclipseNSIS InstallOptions脚本向导自动生成 ; 2009年7月29日下午5:42:56 [设置] NumFields=7 Title=RIM黑莓桌面5.0安装 取消启用=1 [第1栏] 类型=单选按钮 左=15 Top=28 右=100 底部=38 文本=互联网 陈述= 标志=通知 [第4栏] 类型=单选按钮 左=15 Top=95 右=100 底部=105 文本=企业 标志=通知 [第2栏] 类型=分组框 左=0 Top=10 右=300 底部=75 正文= [第5栏] 类型=标签 左=30 Top=42 右=235 底部=52 Text=适用于不在企业Exchange服务器上的用户 [第6栏] 类型=标签 左=30 Top=111 右=235 底部=121 Text=仅当您在Exchange服务器上时才选择此选项 [第3栏] 类型=分组框 左=0 顶部=75 右=300 底部=140 [第7栏] 类型=标签 左=0 Top=0 右=130 底部=10 Text=请选择您的安装方法 …以下是NSI代码: 由EclipseNSIS脚本向导自动生成 2009年7月29日下午5:42:16 名称黑莓桌面 RequestExecutionLevel管理员 一般符号定义 !定义版本5.0.0.11 !定义公司RIM !定义URL MUI符号定义 !定义MUI_图标BBD.ico !定义MUI_许可证页面_单选按钮 包括的文件 !包括第3.nsh节 !包括MUI2.nsh 保留文件 ReserveFile${NSISDIR}\Plugins\AdvSplash.dll 安装程序页面 !插入宏MUI\u页面\u欢迎 !insertmacro MUI_页面_LICENSE.txt !插入宏MUI_页面_组件 !插入宏MUI_页面文件 !插入宏MUI\u页面\u完成 安装程序语言 !插入宏梅语言英语 安装程序属性 OutFile RIM_BlackBerry_Desktop_5.0.exe InstallDir$TEMP\RIM BlackBerry Desktop 5.0安装文件 CRC检查 XPStyle on 显示隐藏的详细信息 VIProductVersion 5.0.0.11 ViadVersionKey/LANG=${LANG\u ENGLISH}ProductName黑莓桌面 ViadVersionKey/LANG=${LANG_ENGLISH}ProductVersion${VERSION} VIADVersionKey/LANG=${LANG_ENGLISH}公司名称${COMPANY} ViadVersionKey/LANG=${LANG_ENGLISH}公司网站${URL} ViadVersionKey/LANG=${LANG_ENGLISH}文件版本${VERSION} ViadVersionKey/LANG=${LANG_ENGLISH}文件描述 ViadVersionKey/LANG=${LANG_ENGLISH}法律版权 安装程序部分 第/o节主SEC0000 SetOutPath$INSTDIR setifdiff ; 测试阶段 分段结束 SectionGroup/e BlackBerry桌面部分 第/o节互联网SEC001 SetOutPath$INSTDIR\DRIVERS setifdiff ; Execwait'msiexec/i$INSTDIR\BlackBerry USB和调制解调器驱动程序\u ENG DM5.0b28.msi/passive' SetOutPath$INSTDIR setifdiff ; 文件/r* ; ExecWait'$INSTDIR\Setup.exe/S/v/qb!' 分段结束 第/o节企业SEC0002 SetOutPath$INSTDIR\DRIVERS setifdiff ; Execwait'msiexec/i$INSTDIR\BlackBerry USB和调制解调器驱动程序\u ENG DM5.0b28.msi/passive' SetOutPath$INSTDIR setifdiff ; 档案室* ; 删除/重新启动$INSTDIR\Setup.ini ; 重命名/重新启动$INSTDIR\Setup\u Enterprise.ini$INSTDIR\Setup.ini ; ExecWait'$INSTDIR\Setup.exe/S/v/qb!' 分段结束 区段组结束 章节说明 !insertmacro MUI\u函数\u说明\u开始 !insertmacro MUI_DESCRIPTION_TEXT${SEC0000}$SEC0000_DESC !insertmacro MUI_DESCRIPTION_TEXT${SEC0001}$SEC0001_DESC !插入宏MUI\u函数\u说明\u结束 安装程序语言字符串 TODO使用适当的翻译更新语言字符串 LangString SEC0000_DESC${LANG_ENGLISH}安装,适用于非Exchange/Enterprise BlackBerry用户通过Eclipse自定义单选按钮INI页面,eclipse,custom-controls,nsis,Eclipse,Custom Controls,Nsis,我正在使用Eclipse的create InstallOptions菜单创建一个自定义INI页面,其中包含用于重新打包Blackberry桌面安装程序的单选按钮 每种类型有两个部分:互联网和企业 我需要一个用户选择2个选项中的一个,根据他们的选择,页面将继续在自定义页面中选择的选项,跳转到INSTFILES页面,并继续到最后 我找不到任何关于在脚本中加载INI页面的具体文档,我可能搜索不正确,然后根据我猜的字段将数据从一个页面传递到下一个页面 感谢您的帮助。即使是为了告诉我我是盲人,无法阅读文档
LangString SEC0001_DESC${LANG_ENGLISH}Exchange/Enterprise BlackBerry用户的安装您可以通过使用Var IsEnterprise或类似的内容创建全局变量开始 要使实际页面正常工作,您需要在现有MUI_页面宏之间插入一个页面命令
page EnterprisePageCreate EnterprisePageLeave
EnterprisePageCreate和EnterprisePageLeave应该是nsis函数,create函数应该创建页面,leave函数应该从单选按钮获取状态并将其保存在全局$iEnterprise中。您可以在InstallOptions自述和示例中找到如何执行此操作的信息
后来
r on您可以在一个部分中使用$IsEnterprise
但既然您已经有了一个名为Enterprise的部分,我假设您只想切换这个部分。如果是这种情况,则无需在var中保存状态,您可以使用EnterprisePageLeave函数中sections.nsh中的宏切换sections复选框
您还提到要跳转到InstFiles页面,查看您发布的脚本,我会将自定义页面放在components页面之前,当Enterprise radio打开时,打开该部分,否则,将其关闭并使其为只读
另一方面,仅使用RequestExecutionLevel admin是不够的,当UAC关闭或
我也在研究nsDialogs。与InstallOptions有点不同,但可以使用INI。我已经关闭了函数并开始工作,但是只需要它来获取GetState变量并将它们传递到我为Internet/Enterprise准备的部分。
${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>
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"
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>