Advanced Installer,搜索注册表,根据注册表选择安装路径
2017-09-08 21:39
239 查看
原文:Advanced Installer,搜索注册表,根据注册表选择安装路径
又停了一段时间没有更新了,今天上博客,发现有位朋友就打包的时候需要搜索注册表(不同版本注册表路径不一致,需要搜索多次来确定安装的是哪个版本,然后再来读取之前的安装路径为现在的路径)来实现安装路径自动选择的问题,这里就这个问题来更新一篇关于搜索注册表和设置安装路径的办法,话不多说,开整。
1、确定安装路径所存的变量名称及更改的地方
老鸟可以无视这个步骤,对于新手可以看一下,这里先说结果,安装路径是存在
APPDIR 这个变量里面的,具体查看方式如下:
1>打开Advanced Installer你的工程文件,在Advanced Installer最上面的工具栏中选中Show run log按钮,如下图所示:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/c36eec2253aa13906ee251791bdea491)
2>点击上方的Run按钮,启用调试模式,这时程序开始打包,然后自动运行你的安装包,这时你可以发现工具下方出现了调试日志:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/f807f0ec0355fda184336f96a7bd56ca)
3>一直下一步,选择一个安装路径后,点击下一步,进入到等待安装的界面。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/57133f81a2e32b45a819ba3b84f9404c)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/d8073cb8ed6a7321919c5a8d70212d60)
4>翻看下方的调试日志,找到 C:\Program Files (x86)\您的公司\您的应用程序\这段文字前方对应的变量名称,那就是 APPDIR。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/87464a62e0c771854ce68a743807eefa)
2、找到给APPDIR赋值的地方,当然是在点击浏览后的地方,将浏览按钮删除,然后设置此编辑栏为只读状态,设置后需要再下方的Control Conditions中增加一条:
1 disable,才能真正保证只读。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/3c187531b3c53268b5cadf1e1e32f5e1)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/7abfe925dd23d8db9e4d46b2803c7883)
3、新建若干个查询项(我这里新建了3个,当然你可以按照自己的需求增加),分别对应需要查询的注册表路径。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/b884968917fb18d01f7fe8912e13603b)
4、可以对每一个查询项测试一下,这里可以看到,如果注册表中存在此键值,那么返回的查询结果为注册表键值的值,如果不存在,则返回空值,以此来判断路径是否存在。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/6c3972a2cdb4741d2113525a9cb59f78)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/0b79dc003a0b6ef8546d31a6ef12ca2c)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/4f3093418376a3424a22b6783e6154ac)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/2954771af21951be55423047683c6b7a)
5、回到对话框页面,在APPDIR那个编辑栏下方的Init Events初始化条件中加入如下条件:
Set installer property value
property : APPDIR
Argument: [RESULT_PATH1]
Condition: RESULT_PATH1<>””
分别将RESULT_PATH1和RESULT_PATH2、RESULT_PATH3都加进去,最后的效果如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/d0299b547b9859a9fb56c0649175886e)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/92445dde51d7d3b0193d99f8e7303407)
6、大功告成,测试一下:
当PATH1存在:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/04b320a224c3021d8a5eff1ea8d5c132)
当PATH2存在:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/03/432b4c3823313fd6f49575568752cbff)
搞定。
这里需要注意的是,如果注册表中所有读出来都是空,那么APPDIR的值就会是一个默认的路径,如果不希望是默认路径的话,那么可以增加提示信息,然后强制退出即可。
又停了一段时间没有更新了,今天上博客,发现有位朋友就打包的时候需要搜索注册表(不同版本注册表路径不一致,需要搜索多次来确定安装的是哪个版本,然后再来读取之前的安装路径为现在的路径)来实现安装路径自动选择的问题,这里就这个问题来更新一篇关于搜索注册表和设置安装路径的办法,话不多说,开整。
1、确定安装路径所存的变量名称及更改的地方
老鸟可以无视这个步骤,对于新手可以看一下,这里先说结果,安装路径是存在
APPDIR 这个变量里面的,具体查看方式如下:
1>打开Advanced Installer你的工程文件,在Advanced Installer最上面的工具栏中选中Show run log按钮,如下图所示:
2>点击上方的Run按钮,启用调试模式,这时程序开始打包,然后自动运行你的安装包,这时你可以发现工具下方出现了调试日志:
3>一直下一步,选择一个安装路径后,点击下一步,进入到等待安装的界面。
4>翻看下方的调试日志,找到 C:\Program Files (x86)\您的公司\您的应用程序\这段文字前方对应的变量名称,那就是 APPDIR。
2、找到给APPDIR赋值的地方,当然是在点击浏览后的地方,将浏览按钮删除,然后设置此编辑栏为只读状态,设置后需要再下方的Control Conditions中增加一条:
1 disable,才能真正保证只读。
3、新建若干个查询项(我这里新建了3个,当然你可以按照自己的需求增加),分别对应需要查询的注册表路径。
4、可以对每一个查询项测试一下,这里可以看到,如果注册表中存在此键值,那么返回的查询结果为注册表键值的值,如果不存在,则返回空值,以此来判断路径是否存在。
5、回到对话框页面,在APPDIR那个编辑栏下方的Init Events初始化条件中加入如下条件:
Set installer property value
property : APPDIR
Argument: [RESULT_PATH1]
Condition: RESULT_PATH1<>””
分别将RESULT_PATH1和RESULT_PATH2、RESULT_PATH3都加进去,最后的效果如下:
6、大功告成,测试一下:
当PATH1存在:
当PATH2存在:
搞定。
这里需要注意的是,如果注册表中所有读出来都是空,那么APPDIR的值就会是一个默认的路径,如果不希望是默认路径的话,那么可以增加提示信息,然后强制退出即可。
相关文章推荐
- Advanced Installer,搜索注册表,根据注册表选择安装路径
- Visual Studio安装项目中将用户选择的安装路径写入注册表的方法[转]
- Visual Studio安装项目中将用户选择的安装路径写入注册表的方法
- 将Visual Studio安装项目中将用户选择的安装路径写入注册表的方法
- 根据注册表获取软件安装路径
- 软件安装不上,路径无法选择问题
- 注册表中保存的VC安装路径
- C# 获取常见软件的安装路径(调用注册表)
- 注册表处理之(根据注册表路径获取主键值和子键值)
- Lua:下载安装lua-cjson,lua操作json代码,指定require搜索路径
- 如何将C#安装路径写入注册表
- PHP框架中根据类名自动搜索路径的问题
- 带权随机数问题--根据权重随机选择一条路径
- C++编程实现从注册表中获取程序安装路径并调用exe文件。
- Inno Setup 已经安装好程序后,再次运行安装包无法选择安装路径的问题。
- 通过修改注册表改变软件默认安装路径
- c#获取安装的软件和路径(注册表)
- Oracle 10G服务器安装图解 2(选择产品安装路径)
- TreeView根据路径得到选择节点
- Python 安装模块 & 模块搜索路径