注册表应用实例
.版本 2
.支持库 iext
.程序集 窗口程序集1
.程序集变量 键句柄, 整数型
.子程序 __启动窗口_创建完毕
.局部变量 根句柄, 整数型
根句柄 = -2147483646 ' 1.HKEY_CLASSES_ROOT -2147483648 2. HKEY_CURRENT_USER -2147483647 3.HKEY_LOCAL_MACHINE -2147483646 4.HKEY_USERS -2147483645
打开表项 (根句柄, “Software\Microsoft\Windows\CurrentVersion\Uninstall”, 键句柄) ' 获取键句柄
枚举软件列表 ()
.子程序 枚举软件列表
.局部变量 结果
.局部变量 键名, 文本型
.局部变量 表项索引
.局部变量 变量
.局部变量 软件名, 文本型
.局部变量 反安装, 文本型
超级列表框1.全部删除 ()
键名 = 取空白文本 (255)
结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))
.判断循环首 (结果 = 0)
软件名 = 取文本注册项 (4, “Software\Microsoft\Windows\CurrentVersion\Uninstall\” + 键名 + “\DisplayName”, )
反安装 = 取文本注册项 (4, “Software\Microsoft\Windows\CurrentVersion\Uninstall\” + 键名 + “\UninstallString”, )
.如果真 (软件名 ≠ “”)
变量 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (变量, 0, 软件名)
.如果 (反安装 = “”)
超级列表框1.置标题 (变量, 1, “可能软件本身有卸载功能,请核对!”)
.否则
.如果 (取文本左边 (反安装, 1) = #引号)
超级列表框1.置标题 (变量, 1, 取文本中间 (反安装, 2, 取文本长度 (反安装) - 2))
.否则
超级列表框1.置标题 (变量, 1, 反安装)
.如果结束
.如果结束
.如果真结束
键名 = 取空白文本 (255)
表项索引 = 表项索引 + 1
结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))
.判断循环尾 ()
关闭键句柄 (键句柄)
.子程序 _软件卸载_被单击
.如果 (运行 (超级列表框1.取标题 (超级列表框1.现行选中项, 1), 真, ))
__启动窗口_创建完毕 ()
.否则
信息框 (“对应的卸载程序不存在,可能软件已经卸载过了,该信息已经无用,可以执行删除!”, 64, , )
.如果结束
.子程序 _按钮1_被单击
.如果真 (信息框 (“您真的要删除该注册信息吗?”, 0, ) = #确认钮)
删除注册项 (4, “Software\Microsoft\Windows\CurrentVersion\Uninstall\” + 超级列表框1.取标题 (超级列表框1.现行选中项, 0))
__启动窗口_创建完毕 ()
.如果真结束
注册表源码