检查某注册表键是否存在

;定义注册表主键
 !define HKEY_CLASSES_ROOT 0x80000000
 !define HKEY_CURRENT_USER 0x80000001
 !define HKEY_LOCAL_MACHINE 0x80000002
 !define HKEY_USERS 0x80000003
 OutFile OpenReg.exe
 XPStyle on
 !include LogicLib.nsh
 ;--------------------------------
 Name OpenReg
 Section Nil
 SectionEnd
 Function .onInit
 ;为键的句柄创建一个缓存
 System::Call "*(i 0) i .R0"
 ;将要检测的键放入内存中
 Push "SOFTWARETENCENTQQPinYin"
 ;调用API进行检查,返回值在$R1中
 system::call 'Advapi32::RegOpenKey(i ${HKEY_LOCAL_MACHINE}, t s, i R0) .iR1'
 ;关闭该键的句柄
 system::call 'Advapi32::RegCloseKey(i R0)'
 ;释放内存
 system::free
 ;返回值:
 ;0代表键存在
 ;2代表键不存在
 ;其它值表示出错
 ${If} $R1 == 0
 Messagebox mb_ok "Key Exists!"
 ${ElseIf} $R1 == 2
 Messagebox mb_ok "Key doesn't Exists!"
 ${Else}
 Messagebox mb_ok "Error!"
 ${EndIf}
 Pop $R1
 Pop $R0
 Quit
 FunctionEnd
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容