原文NSIS:检查某注册表键是否存在

;定义注册表主键
!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 "SOFTWARE\TENCENT\QQPinYin"
;调用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

NSIS:检查某注册表键是否存在的更多相关文章

  1. NSIS:在注册表中记录安装路径以便重装或升级时读取

    原文 NSIS:在注册表中记录安装路径以便重装或升级时读取 在NSIS中,这个功能是非常有用的,可以避免用户把程序安装到多个位置的尴尬. 第1步:在“安装目录选择页面”前面加入以下代码: 1 !def ...

  2. 通过程序修改注册表键值来达到修改IE配置参数的目的

    通过程序修改注册表键值来达到修改IE配置参数的目的 使用IE访问应用程序或网页时经常需要设置一些选项(工具-Internet 选项),比如为了避免缓存网页,把工具-Internet选项-常规选项卡-I ...

  3. 使用PowerShell读、写、删除注册表键值

    访问注册表键值 在PowerShell中,用户可以通过类似于HKCU:(作为HKEY_CURRENT_USER)和HKLM:(代表HKEY_LOCAL_MATCHINE)的虚拟驱动器访问注册表键值. ...

  4. 使用Windows命令行reg控制注册表键值

    使用Windows命令行reg控制注册表键值 引言 熟悉Windows操作系统的朋友可能都知道,Windows操作系统下的注册表相当于系统的数据库 ,部分软件将自己的配置信息都放在注册表里面,而注册表 ...

  5. 注册表键值明明存在OpenSubKey始终返回null,解决方案

    先上代码及实例 RegistryKey rsg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Macromedia\FlashPaper Pri ...

  6. 如何通过.reg文件来修改注册表键和子键以及键值

    无废话, 直接上例子, 自己运行一下便知. 然后根据自己需要改改就可以随便用了.   添加key, subkey, 和设置键值的例子. ==================== Windows Reg ...

  7. Ubuntu - Dconf 注册表键值修改参考表

    gsettings reset org.gnome.desktop.wm.preferences theme默认gnomegsettings set org.gnome.desktop.interfa ...

  8. 关于aardio修改注册表默认键值的问题(转)

    今天用aardio做注册表练习  遇到一个问题.  就是不知道怎么用aardio修改已存在的默认的注册表键的值.. 导出注册信息看了一下 默认的和普通的键值不太一样  形式是  @="要写入 ...

  9. Inno Setup入门(十)——操作注册表 & 自启程序

    http://379910987.blog.163.com/blog/static/3352379720110259414788/ 有些程序需要随系统启动,或者需要建立某些文件关联等问题,这些都是通过 ...

随机推荐

  1. SQL Server :理解IAM 页

    原文:SQL Server :理解IAM 页 在以前的文章里,我们讨论了数据页,GAM和SGAM,还有PFS页.今天我们一起来讨论下索引分配映射(Index Allocation Map:IAM)页. ...

  2. 【ThinkingInC++】8、说明,浅谈数据类型的大小

    /** * 特征:说明.浅谈数据类型的大小 * 时刻:2014年8一个月10日本11:02:02 * 笔者:cutter_point */ #include<iostream> using ...

  3. cocos2d-x V3.0 呼叫加速度计 Acceleration

    今天克服了一个问题,我觉得非常酷 哈哈. 今天得到解决cocos2d-x 3.0 呼叫重力加速器问题,上网查了很多资料 发现是不够,不解决这个问题,我不知道如果我使用3.0 这一问题的版本号,但是,这 ...

  4. Linux在简短而经常使用的命令

    Linux组成: 内核:的心脏.是执行程序和管理像磁盘和打印机等硬件设备的核心程序. shell:是系统的用户界面,提供了用户和内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.是 ...

  5. Ubuntu下搭建ASP.NET 5

    在Ubuntu下搭建ASP.NET 5开发环境   0x00 写在前面的废话 年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了.最近工作上有个小功能要 ...

  6. HTML基本介绍

    html 即 超文本标记语言 ,即标准通用标记语言下的一个应用. "超文本"就是指页面内能够包括图片.链接.甚至音乐.程序等非文字元素.超文本标记语言的结构包括"头&qu ...

  7. POJ 2405 Beavergnaw (计算几何-简单的问题)

    Beavergnaw Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6203   Accepted: 4089 Descri ...

  8. ios 动态设置Cell高低

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPa ...

  9. UVA305 - Joseph(数论 + 打表)

    UVA305 - Joseph(数论 + 打表) 题目链接 题目大意:约瑟夫环问题:n个人围成一圈,每次都淘汰第m个人,问最后一个幸存下来的人的编号. 这题的意思有点不一样,它规定前面的k个人是好人, ...

  10. Android - 和其他APP交互 - 获得activity的返回值

    启用另一个activity不一定是单向的.也可以启用另一个activity并且获得返回值.要获得返回值的话,调用startActivityForResult()(而不是startActivity()) ...