慎用注册表作为软件配置手段
2007-07-05 08:05
155 查看
在过去的Windows编程中,注册表一直是广大软件编写者用于存放软件配置信息的常用“场所”,其有点当然是有通用API,使用方便。缺点则是受到系统限制,特别当你重装系统后,一切设置都不消灭干净,很多软件需要重装。所以,当前越来越多的软件已经采用如XML这样的配置文件或干脆自己设计配置文件来作为配置手段。
在Windows Mobile平台中同样有注册表可供开发者使用,接口与Windows完全相同,但是,如果你要用注册表来作为软件配置信息的“容器”,那么你可要注意了,因为你会发现很可能你变动的注册表信息在手机重启后消失的干干净净。
比如,你编好一个软件然后打包,当然,在打Cab包的inf配置文件中,会有类似的写入注册表的语句:
[RegSettings]
HKCU,%reg_path%,Type1,0x00010001,0
HKCU,%reg_path%,Type2,0x00010001,1
即安装Cab包后,在系统注册表的HKCU的字符串“reg_path”制定路径下安装两个DWORD的键Type1和Type2,其值分别为0和1。
然后操作软件,假设将Type1的值改成了1,将Type2的值改成了3之后,你可能认为这下这些软件配置文件保存好了吧。退出软件,用VS2005的远程注册表查看工具看看,确实如此。不过别高兴,重启手机试试,“OK,不就重启手机嘛,分分钟搞定!”,重启手机,然后再用VS2005远程注册表查找工具看看,“Oh,My God,怎么Type1又变成0,Type2又变成1了?”,是的,在我手上测试过的两台多普达手机中就有这样的情况。
为什么?说实话,这里只是提供一个经验,具体原因欢迎探讨,我装过几个小公司的软件发现也有这个问题,但是几个大公司的软件却没有这样的问题。我怀疑更授权或者WM5平台上的数字签名机制有关。这样的数字签名需要购买,而且有“特权”和“非特权”的区别,注册表操作属于“特权”操作。这里只是我的猜测,具体如何也希望有经验的人士给予解答。在此致谢先,^_^。
学累的吧,快来看看我的非技术Blog--猫思猫想
在Windows Mobile平台中同样有注册表可供开发者使用,接口与Windows完全相同,但是,如果你要用注册表来作为软件配置信息的“容器”,那么你可要注意了,因为你会发现很可能你变动的注册表信息在手机重启后消失的干干净净。
比如,你编好一个软件然后打包,当然,在打Cab包的inf配置文件中,会有类似的写入注册表的语句:
[RegSettings]
HKCU,%reg_path%,Type1,0x00010001,0
HKCU,%reg_path%,Type2,0x00010001,1
即安装Cab包后,在系统注册表的HKCU的字符串“reg_path”制定路径下安装两个DWORD的键Type1和Type2,其值分别为0和1。
然后操作软件,假设将Type1的值改成了1,将Type2的值改成了3之后,你可能认为这下这些软件配置文件保存好了吧。退出软件,用VS2005的远程注册表查看工具看看,确实如此。不过别高兴,重启手机试试,“OK,不就重启手机嘛,分分钟搞定!”,重启手机,然后再用VS2005远程注册表查找工具看看,“Oh,My God,怎么Type1又变成0,Type2又变成1了?”,是的,在我手上测试过的两台多普达手机中就有这样的情况。
为什么?说实话,这里只是提供一个经验,具体原因欢迎探讨,我装过几个小公司的软件发现也有这个问题,但是几个大公司的软件却没有这样的问题。我怀疑更授权或者WM5平台上的数字签名机制有关。这样的数字签名需要购买,而且有“特权”和“非特权”的区别,注册表操作属于“特权”操作。这里只是我的猜测,具体如何也希望有经验的人士给予解答。在此致谢先,^_^。
学累的吧,快来看看我的非技术Blog--猫思猫想
相关文章推荐
- H3C S7500 交换机 作为FTP Server升级软件版本的配置
- CentOS 本地iso挂载并配置iso镜像作为yum源安装软件
- VirtualBox中配置CentOS的本地磁盘镜像作为其软件源
- VirtualBox中配置CentOS的本地磁盘镜像作为其软件源
- java xml作为配置文件,读取
- 将 Shiro 作为应用的权限基础 四:shiro的配置说明
- M$的测试计划概述-第 4 章 — 软件和硬件配置
- C#调用注册表,修改IE相关配置
- 配置CentOS的yum源为阿里(等国内其他)软件的安装源 kettle下载
- 由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码 19)怎么办?
- 软件配置管理基本术语
- Redis 作为缓存服务器的配置
- git hub的GUI软件配置与使用
- 从零开始——Ubuntu系统配置与软件安装
- 配置Fedora14安装盘作为本地源(YUM repo)
- Ubuntu彻底删除软件及配置文件
- “代理XP”组件已作为此服务器安全配置的一部分被关闭
- winform通过注册表限制软件使用次数
- Openstack 多后端配置--详解NFS作为Cinder的后端存储
- 关于软件开发中兼容win7注册表的若干思考