深入探究VBA与Windows注册表操作
1. 注册表反射
在64位Windows系统中,某些键和值需要同时供32位和64位应用程序使用,例如COM应用程序的注册信息。若在64位Windows上注册了一个32位COM库,为使64位应用程序能使用该库,它需同时在32位和64位注册表分支中注册,这可通过注册表反射来实现。
注册表反射是Windows用于在特定64位和32位注册表设置之间维护镜像的过程,能实时同步设置。在64位Windows上,有注册表API函数可定义键的反射方式。不过,Windows Server 2008 R2和Windows 7已移除注册表反射功能,Windows Vista中部分之前反射的键在Windows 7中现在是共享的。
2. 使用内置VBA注册表函数
2.1 为何选择注册表存储
许多程序员使用全局变量来保存应用程序中使用的值,但这种方法存在两个问题:一是若出现未处理的错误,所有全局变量都会被重置;二是每次启动应用程序时都需重新赋值。另一种选择是将此类值存储在数据库中,但如果存储的是远程数据存储的连接字符串,若应用程序不知道查找位置,获取该值可能会有困难。
因此,许多专业应用程序会选择将信息存储在注册表中。注册表可存储各种信息,从应用程序偶尔使用的简单值,到连接字符串,再到用户偏好(如表单的位置和颜色等)。
2.2 VBA内置注册表函数
VBA提供了四个用于操作注册表的内置函数,但这些函数仅能操作注册表中专门分配给VB和VBA的部分,即 HKEY_CURRENT_USER\Software\VB and VBA Program Se
超级会员免费看
订阅专栏 解锁全文
914

被折叠的 条评论
为什么被折叠?



