NSIS小记:管理员权限和开机自动启动
Posted gq0324
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSIS小记:管理员权限和开机自动启动相关的知识,希望对你有一定的参考价值。
解决问题:
程序安装后,通过桌面快捷方式运行程序时不需要再右键选择管理员身份运行。
注意:程序安装时需要使用管理员权限进行安装,才能往注册写入信息
;针对当前用户有效WriteRegStr HKCU "SOFTWAREMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers" "$INSTDIR${MAIN_PROGRAM_NAME}M.exe" "RUNASADMIN"
;针对所有用户有效WriteRegStr HKEY_LOCAL_MACHINE "SOFTWAREMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers" "$INSTDIR${MAIN_PROGRAM_NAME}M.exe" "RUNASADMIN"
解释:${MAIN_PROGRAM_NAME}M.exe 是要执行的主程序的名称
启动项:
WriteRegStr HKCU "SoftwareMicrosoftWindowsCurrentVersionRun" "TestAddKey" "$INSTDIRTest.exe"
#该命令放在安装区域(Section "MainSection" SEC01), 或者注册区域(Section -Post)都可以
root_key: 注册表根键值: HKCU (HKEY_CURRENT_USER)
subkey: 子键值: Run键(解释见前言)
key_name: 新增键值名称: TestAddKey
value: 启动命令: “Test.exe绝对路径”, 如有命令行参数可以在路径后添加
删除启动项:
DeleteRegValue HKCU "SoftwareMicrosoftWindowsCurrentVersionRun" "TestAddKey"
#该命令放在卸载命令区域(Section Uninstall)
获取安装包的名称:
section main
${GetExeName} $R0
${GetFileName} "$R0" $R1
MessageBox MB_OK "My installer‘s exe is $R1"
sectionend
${GetFileName} $EXEFILE $R2
;MessageBox MB_OK $EXEFILE
${GetBaseName} $R2 $R1
;MessageBox MB_OK $R1
StrCpy $Channel $R1
以上是关于NSIS小记:管理员权限和开机自动启动的主要内容,如果未能解决你的问题,请参考以下文章