NSIS安装成功是否选择开机自动启动

时间:2020-12-26 15:40:24

对于制作好的安装包,有些时候可能需要在安装完成界面上添加一个可勾选的开机自启动的选项。 下面是具体的细节: 1.在安装完成界面设置添加如下代码:

!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_Function AutoBoot
!define MUI_FINISHPAGE_SHOWREADME_TEXT "开机自动启动"

上面的代码务必要添加在 " !insertmacro MUIPAGEFINISH "之前。

2.在Section后区段的后面添加Function部分(在Section之后,是为了避免产生未知的错误) 代码如下:

Function AutoBoot
WriteRegStr HKCU"Software\Microsoft\Windows\CurrentVersion\Run" "test""test.exe"
FunctionEnd

把上面的test替换成你要打包程序名就行了,主要是把信息写入系统注册表。

3.前两步已经可以实现开机自启动了。这最后一步,需要在卸载和初始化区段里面把注册表信息删除。原因是让用户在卸载程序和覆盖安装程序后,不会受到刚开始安装程序的写入系统注册表的影响。 在Function .onInit里面添加如下代码:

;删除开机自启

DeleteRegKey HKCU"Software\Microsoft\Windows\CurrentVersion\Run"

在Section Uninstall里面添加如下代码:

;删除开机自启

DeleteRegKey HKCU"Software\Microsoft\Windows\CurrentVersion\Run"



补充说明:

      开机启动项注册表一般可以在运行cmd中输入msconfig 就可以看到本机的开机自启项

NSIS安装成功是否选择开机自动启动

     

最后编译运行,就会发现在程序的安装完成界面出现了可勾选的开机自启动选项。效果如下图:

NSIS安装成功是否选择开机自动启动


续:

列出注册表"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run"中的所有键值到界面上或文本中;并把自己做的这个程序设置为开机  由于是lua脚本,现在还没确定怎么操作。后续吧。