zoukankan      html  css  js  c++  java
  • NSIS学习记录の----查找注册表某个键是否存在

    最近要做一个注册表的判断。以往都是注册表某个键的键值存在查找,但是如何判断一个空键值的键是否存在呢(很多大厂装逼不写键值,有默认就好)?

    下面给出解决办法(要沟通请邮件联系:7-7-2-7-0-6-5-4-8#qq.com)

    ;定义注册表主键
    !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 Main
    SectionEnd
    
    Function .onInit
    ;为键的句柄创建一个缓存
    System::Call "*(i 0) i .R0"
    ;将要检测的键放入内存中
    Push "SOFTWARETENCENTQQ"
    ;调用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 "存在!"
    ${ElseIf} $R1 == 2
    Messagebox MB_OK "不存在!"
    ${Else}
    Messagebox MB_OK "出错!"
    ${EndIf}
    Pop $R1
    Pop $R0
    Quit
    FunctionEnd
  • 相关阅读:
    线性回归学习历程
    CART决策树的学习历程
    markdown测试
    开张大吉+代码测试
    使用tomcat启动dubbo项目
    ThreadLocal 工作原理、部分源码分析
    Dubbo项目demo搭建
    redis 操作 list 的测试
    redis 操作 hash 的测试
    redis 操作string 的测试
  • 原文地址:https://www.cnblogs.com/xietianjiao/p/7059618.html
Copyright © 2011-2022 走看看