如何在vba中用RegEnumValue遍历枚举注册表的键值名称?





如何在vba中用RegEnumKeyEx枚举所有注册表子键的名称?一文中我们介绍了遍历注册表某个父键的所有子键的名称的方法。

接下来我们介绍在vba中遍历枚举注册表的键值的方法,遍历枚举注册表的键值的原理如下:

先用RegOpenKeyEx函数打开注册表的键,然后先调用一次RegEnumValue函数,获取其中一个键值,最后用循环的形式反复调用RegEnumValue函数,直到遍历所有键值。

以下代码将遍历注册表键HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\StatusBar下的所有键值的名称:

RegEnumValue函数在遍历键值的名称同时还可以获得键值的数据类型,以及键值的数据。其中参数lType表示键值的数据类型,由于注册表键值的数据类型有多种,有字符串形式,有字节形式、也有数值形式,故无法用一种变量类型代替,故这里都只获取注册表键值的数据的二进制形式,也就是bData字节数组存储的就是键值的数据的二进制值。

发表评论