我使用NSIS创建了一个自定义页面,我在其中创建了一个CheckBox来设置Internet Explorer的主页。 我结合了从不同来源收集的这些代码
创建CheckBox:
${NSD_CreateCheckbox} 8 80 10 10 "CheckBox1"
Pop $Custom_Page1_CheckBox1
GetFunctionAddress $0 OnCheckbox
nsDialogs::OnClick $Custom_Page1_CheckBox1 $0
这是我用来设置Internet Explorer主页的功能:
Function OnCheckbox
WriteRegStr HKCU "Software\Microsoft\Internet Explorer\Main" "Start Page" "http://www/homepage.com/"
FunctionEnd
问题是没有管理用户可能选择的选择。
如何解决这个问题?
答案 0 :(得分:0)
OnClick处理程序不是执行更改用户系统的操作的正确位置。
您应该在用户即将离开页面时检查状态。如果此自定义页面位于InstFiles
页面之前,我建议您只将状态保存在变量中,然后在section
中与其他安装任务同时执行操作。
!include nsDialogs.nsh
!include LogicLib.nsh
Page Custom MyPageCreate MyPageLeave
Page InstFiles
var OverrideIEHomeCheck
Function MyPageCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateCheckbox} 8 80 50u 10u "Evil"
Pop $OverrideIEHomeCheck
nsDialogs::Show
FunctionEnd
Function MyPageLeave
${NSD_GetState} $OverrideIEHomeCheck $0
${If} $0 <> ${BST_UNCHECKED}
MessageBox mb_ok "Checked, do something now or remember the state"
${EndIf}
FunctionEnd