如何在vba中枚举注册表键的键值名称、数据类型、数据? - VBA - ExcelOffice

如何在vba中枚举注册表键的键值名称、数据类型、数据?





我们之前介绍了如何在vba中用RegEnumValue遍历枚举注册表的键值名称?

该文指出用RegEnumValue函数枚举注册表的键值名称时,也能同时获得键值的数据类型和键值的数据。

但是获得的键值数据是二进制形式的。由于键值的数据类型有多种,对于REG_SZ、REG_EXPAND_SZ、REG_MULTI_SZ等类型的数据,获取的二进制形式的数据还需要用复杂的api函数去转换为在注册表中显示的结果。

为了简化过程,可以结合如何在vba中用WScript.WshShell读取注册表的键值数据?一文中介绍的读取键值数据的方法,来实现枚举任意注册表键的键值名称、数据类型和具体的数据内容。

比如要枚举注册表键HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Excel\Options的键值名称、数据类型和具体的数据内容,可以使用如下的代码:

以上代码的关键点在于每调用一次RegEnumValue函数,都需要重置它的参数的缓冲区的大小,否则会出现枚举不成功。

打赏

发表评论