NSIS 学习总结

举报
liuzhen007 发表于 2021/09/30 22:48:32 2021/09/30
【摘要】 正文今天对 NSIS 学习内容进行整理总结,具体内容如下。1.常见宏${PRODUCT_UNINST_ROOT_KEY} ;HKLM"${PRODUCT_UNINST_KEY}" ;卸载目录${PRODUCT_PUBLISHER} ;大洋信息2. SetRegView;----------给x64注册表访问权限-----------!ifdef LIBRARY_X64SetRegView 6...

正文

今天对 NSIS 学习内容进行整理总结,具体内容如下。

1.常见宏

${PRODUCT_UNINST_ROOT_KEY} ;HKLM
"${PRODUCT_UNINST_KEY}" ;卸载目录
${PRODUCT_PUBLISHER} ;大洋信息

2. SetRegView

;----------给x64注册表访问权限-----------
!ifdef LIBRARY_X64
SetRegView 64
!endif
;----------------------------------------
。。。。。。。;对注册表的操作语句,读写数据。。。。。。。。。。
;----------结束x64注册表访问权限-----------
!ifdef LIBRARY_X64
SetRegView lastused
!endif
;----------------------------------------
二者是成对儿出现的,用于对注册表操作的时候。

3.DisableX64FSRedirection

!ifdef LIBRARY_X64
${DisableX64FSRedirection}
!endif
这句话也是必不可少的,必须在主区Section "MainSection" SEC01 开头使用。这个宏操作是使重定向失效,进而将32位的程序信息存储到64位应该在的注册表中,不需要再次关闭,而且可以肯定的是,只在本程序中有效,不影响其他程序以后在该机器上的安装,即不影响其安装过程中的重定向功能。

4.卸载后,清除注册表的操作。

WriteRegStr / WriteRegDWORD / WriteRegBin / WriteRegExpandStr 根键 子健 键名 键值
DeleteRegValue 根键 子健 键名
DeleteRegKey [/ifempty] 根键 子健
根键:HKCR、HKLM、HKCU、HKU、HKCC、HKDD、HKPD、SHCTX
/ifempty:仅当无任何子项时才删除
NSIS 中支持的引号有三种:"、' 和 `,每种必须成对出现。子健、键名、键值允许使用引号包围,但如果字符串中含有空格则必须使用引号包围。示例:
WriteRegStr HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" RegisteredOwner User
WriteRegExpandStr HKCU Environment TEMP '%USERPROFILE%\Local Settings\Temp'
WriteRegDWORD HKCU Software\Baidu\BaiduHi\Misc PCHashCode 0x4d2fae0a
WriteRegBin HKU `.DEFAULT\Control Panel\Desktop` 'UserPreferencesMask' BE3E0380
写入内容中包含引号的,可使用其他引号做外围引号:
WriteRegStr HKCU SOFTWARE\MyApp Path `"$INSTDIR\app.exe" "$WINDIR\log.log"`
WriteRegStr HKCU SOFTWARE\MyApp Path '"$INSTDIR\app.exe" "$WINDIR\log.log"'
都是对的。写入默认值,则键名留空:
WriteRegStr HKCU SOFTWARE\MyApp "" `"$INSTDIR\app.exe" "$WINDIR\log.log"`
删除:
DeleteRegValue HKCR lnkfile IsShortcut
DeleteRegKey HKLM SOFTWARE\MyApp
DeleteRegKey /ifempty HKCU SOFTWARE\MyApp

由于网页字体原因,难以分辨符号。请将以上内容复制到记事本中查看。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。