织梦CMS - 轻松建站从此开始!

湖南快乐十分开奖图表:罗索

当前位置: 主页>杂项技术>PC常识>

使用installshield 获取注册表,删除注册表判断安装

jackyhwei 发布于 2016-12-23 11:06 点击:次 
为啥好多软件安装新版本的时候他会要求你删除原先的版本在继续进行安装(一开始我的解决方案是将以前注册的dll通过脚本删除,但是发现虽然dll的注册信息删除了,但是其程序还在添加和删

湖南快乐十分玩法 www.7mhm0.cn 家在做安装包的时候常?;嵊龅礁碌任侍?,在使用installshield制作安装包,如果软件版本发生改变,那么更新是自动完成的。但是我们这里有一个问题,在installshield如果新版本的regist信息和旧版本的regist信息发生了改变,比如说注册表结构改变,或是不需要以前的注册表目录想要删除时,那么在运行新的安装程序时候,程序必然会报错。。这样就是为啥好多软件安装新版本的时候他会要求你删除原先的版本在继续进行安装(一开始我的解决方案是将以前注册的dll通过脚本删除,但是发现虽然dll的注册信息删除了,但是其程序还在添加和删除安装程序中,所以此方法不可行)。现在给大家讲下怎么实现判断以前版本是否安装,并提示用户删除。

在installshield里面有Product Code这个选项,它的意思就是一个特定是产品编码,来确定是否是同一个软件的。下面这个是我们旧版本的截图。

新版本的Product Code如下

在更遍了Product Code后,在运行安装包的同时就不会出现升级的界面了,但是这样的话会在机器里面出现一个软件的两个版本,对用户来说这是相当不礼貌的做法啊。

所以我们想如何能判断用户是否安装了以前的版本并提示他删除,这样的话我在注册表信息里面找啊找终于被我找到了。。

在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{你的产品Code},如果用户安装了你的软件并且没有卸载就会在这里出现这条注册信息。。

这样的话我们现在的问题就是如何在安装得时候检测到这条注册表信息,并提示用户卸载这个版本。

我们的目的是在安装之前检测并提示所以要在function OnFirstUIBefore()中写入脚本。我找到一个函数

RegDBKeyExist(“\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{你的产品Code}”);

其返回值为-1代表没有找到这条注册信息,1为找到这条注册信息。

使用这个函数前需要使用这个函数来确定进行注册表操作的根目录:

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); 

知道这些后咱们的任务基本完成啦,附上代码:

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);  
 
if(RegDBKeyExist("\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{5E3673E9-3F06-40B7-B852-5A52D43316D9}")>0) then
    MessageBox("安装软件检测到较早版本,为保证软件正确安装请卸载该版本,安装程序即将结束。",SEVERE);
    abort;
endif;

其实代码是很简单的,主要是installshield得脚本语言大家都不熟悉,而且网上资料比较少。

删除注册的函数RegDBDeleteKey(string)

给大家我找到的一份installshield的脚本语言函数等的介绍合计,希望对大家以后的工作有所帮助哈!

(doudougou)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [//dev.open365.com.cn/a/201612/17489.html]
本文出处:博客园 作者:doudougou 原文
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
将本文分享到微信
推荐内容

  • 端午小长假 宜春接游270.6万人次 旅游综合收入12.73亿元 2018-12-01
  • 落实党委的政治责任和领导责任,开创我国高等教育发展新局面 2018-07-25
  • 人民日报召开习近平新闻思想理论研讨会 2018-07-25
  • 跟着抖音去旅行,五一小长假,你的专属攻略请查收! 2018-07-24
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2018-07-24
  • 蔡英文将二访巴拉圭?台媒:主要是想过境美国! 2018-07-23
  • 绷紧纪律弦,坚决对诱惑说“不” 2018-07-23
  • 李纪恒--内蒙古频道--人民网 2018-07-22
  • 端午假期全国迎客8910万人次 传统文化活动受青睐 2018-07-21
  • [调皮]“谈判技巧”始终摆脱不了“被迫谈判”的尴尬! 2018-07-21
  • 郭树清谈非法集资风险:收益率超6%需谨慎 2018-07-20
  • 优质金融资源“注”入云南 2018-07-20
  • 金灿荣:特朗普稳住阵脚后或对华更强硬 2018-07-19
  • 风雨兼程,与党和人民同行 2018-07-19
  • 923| 617| 60| 575| 461| 325| 720| 965| 854| 320|