NSIS检测注册表键是否存在
侧边栏壁纸
  • 累计撰写 29 篇文章
  • 累计收到 129 条评论

NSIS检测注册表键是否存在

nsisfans
2022-03-23 / 0 评论 / 124 阅读 / 正在检测是否收录...

一定要定义注册表主键,否则检测无效。

Name "检测注册表键是否存在"
OutFile  "检测注册表键是否存在.exe"
;定义注册表主键
!define HKEY_CLASSES_ROOT           0x80000000
!define HKEY_CURRENT_USER           0x80000001
!define HKEY_LOCAL_MACHINE          0x80000002
!define HKEY_USERS                  0x80000003

Section
  Pop $R1
  Pop $R0
  System::Call "*(i 0) i .R0"  ;为键的句柄创建一个缓存
  Push "Software\Daum\PotPlayerMini64\Positions"  ;将要检测的键放入内存中
  system::call 'Advapi32::RegOpenKey(i ${HKEY_CURRENT_USER}, t s, i R0) .iR1'  ;调用API进行检查,返回值在$R1中
  system::call 'Advapi32::RegCloseKey(i R0)'  ;关闭该键的句柄
  system::free  ;释放内存
  ;返回值:
  ;0代表键存在
  ;2代表键不存在
  ;其它值表示出错
  MessageBox MB_OK "$R1"
SectionEnd
0

评论 (0)

取消