NSIS:访问自定义页面组合框的值?
我已使用 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 中的组合框?
I have added custom page to NSIS installer using ini files, here is a code
.
.
.
; 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
.
.
.
Here is a customPage.ini file
; 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
I want to set values of combobox dynamically using NSIS script, how can I access combobox in nsis?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我没有方便的代码,但基本上你要做的就是将 ini 值写入该 ini 文件,就在你提取它之后,但在运行
InstallOptions:dialog
之前,请参阅: http://nsis.sourceforge.net/Docs/InstallOptions/Readme.html
请注意,在您的代码中没有像您在链接网页中看到的那样使用 InstallOptions 宏。相反,您正在手动完成所有事情。通常,InstallOptions 宏将自定义页面 ini 文件提取到插件目录中。这意味着我的代码片段可能无法工作,因为您没有遵循通常的模式。因此,如果上述方法不起作用,请尝试使用 WriteINI。但概念是相同的,在解压后、显示之前将值写入 ini 文件。
I don't have code handy but basically what you do is write ini values to that ini file, just after you extract it, but before you run
InstallOptions:dialog
See: http://nsis.sourceforge.net/Docs/InstallOptions/Readme.html
Note that in your code you aren't using the InstallOptions macros like you see in the linked webpage. Instead you are doing everything manually. Normally the InstallOptions macros extract the custom page ini files to the plugins directory. This means my code snippet might not work since you aren't following the usual pattern. So instead if the above doesn't work, try using WriteINI instead. But the concept is the same, write the value to the ini file just after extracting it, but before displaying it.