WMI 注册表 StdRegProv

StdRegProv 是 WMI名称空间 root\DEFAULT 中的一个子类,有16个方法。
  StdRegProv 类包含与系统注册表有关的方法。可用这些方法来:
  验证用户的访问权
  创建、枚举、和删除注册表项
  创建、枚举、和删除键值

  读取、修改、和删除数据

 

 

参数

  各方法都有的参数 hDefKey

  指定含有 sSubKeyName 路径的根键的可选参数。默认值为 HKEY_LOCAL_MACHINE (0x80000002)。以下的常数定义于 Winreg.h:

  HKEY_CLASSES_ROOT (0x80000000)

  HKEY_CURRENT_USER (0x80000001)

  HKEY_LOCAL_MACHINE (0x80000002)

  HKEY_USERS (0x80000003)

  HKEY_CURRENT_CONFIG (0x80000005)

  HKEY_DYN_DATA (0x80000006)

  其中,HKEY_DYN_DATA 只是 Windows 95 和 Windows 98 计算机的合理的根键。

创建,删除和枚举

  uint32 CreateKey([in] uint32 hDefKey,[in] string sSubKeyName);

  CreateKey 方法在指定的根键创建子项

  sSubKeyName 包含要创建的项。

  CreateKey 方法创建路径里指定的不存在的所有子项。例如,如果 MyKey 和 MySubKey 不存在于以下路径里, CreateKey 创建这两项:

  HKEY_LOCAL_MACHINE\SOFTWARE\MyKey\MySubKey

  uint32 DeleteKey([in] uint32 hDefKey,[in] string sSubKeyName);

  DeleteKey 方法在指定的根键里删除一个子项。

  sSubKeyName 包含要删除的项。

  uint32 EnumKey([in] uint32 hDefKey,[in] string sSubKeyName,[out] string sNames);

  EnumKey 方法枚举某路径的子项。

  sSubKeyName 指定包含要枚举的子项的路径。

  sNames 包含一数组的子项字符串。

  uint32 EnumValues([in] uint32 hDefKey,[in] string sSubKeyName,[out] string sNames,[out] sint32 iTypes);

  EnumValues 方法枚举某子项的键值。

  sSubKeyName 指定包含要被枚举的键值的路径。

  sNames 包含一数组的键值名称的字符串。此数组的元素与 iTypes 的元素直接相对应。

  iTypes 包含一数组的数据值类型 (整数)。您可用这些类型来决定调用哪个 Get 方法。例如,如果数据值类型是 REG_SZ,您应调用 GetStringValue 来检索键值的数据。此数组的元素与 sNames 的元素直接相关联。 以下数据值类型常数定义于 Winnt.h:

  REG_SZ (1)

  REG_EXPAND_SZ (2)

  REG_BINARY (3)

  REG_DWORD (4)

  REG_MULTI_SZ (7)

  uint32 DeleteValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName);

  DeleteValue 方法在指定的子项里删除一个键值。

  sSubKeyName 指定项,它包含要删除的键值。

  sValueName 指定要从子项中删除的键值名。指定一个空的字符串来删除默认键值 (默认键值不被删除,它的数据被设置为 "(数值未设置)"

修改和读取

  uint32 SetDWORDValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] uint32 uValue);

  SetDWORDValue 方法为数据类型为 REG_DWORD 的键值设置数据。

  sSubKeyName 指定包含要设置的键值的项。

  sValueName 指定要设置数据的键值名。您可指定一个现有的键值 (更新) 或一个新的键值 (创建)。指定一个空的字符串来设置默认键值的数据。

  uValue 指定一个双字数据。

  uint32 GetDWORDValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] uint32 uValue);

  GetDWORDValue 方法为数据类型为 REG_DWORD 的键值返回数据。

  sSubKeyName 指定包含键值的路径。

  sValueName 指定要检索数据的键值名。指定一个空字符串来得到默认键值。

  uValue 包含键值的 DWORD 数据。

  uint32 SetStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);

  SetStringValue 方法为数据类型为 REG_MULTI_SZ 的键值设置数值。

  sSubKeyName 指定包含要设置的键值的项。

  sValueName 指定要设置数据的键值名。您可指定一个现有的键值 (更新) 或一个新的键值 (创建)。指定一个空的字符串来设置默认键值的数据。

  sValue 指定一个字符串数据。

  uint32 GetStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);

  GetStringValue 方法为数据类型为 REG_SZ 的键值返回数据。

  sSubKeyName 指定包含键值的路径。

  sValueName 指定要检索数据的键值名。指定一个空字符串来得到默认键值。

  sValue 包含键值的字符串数据。

  uint32 SetMultiStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);

  SetMultiStringValue 方法为数据类型为 REG_MULTI_SZ 的键值设置数据。如果成功,SetMultiStringValue 方法返回一个 uint32 是 0; 如果出现任何错误,则是其他值。

  sSubKeyName 指定包含要设置的键值的项。

  sValueName 指定要设置数据的键值名。您可指定一个现有的键值 (更新) 或一个新的键值 (创建)。指定一个空的字符串来设置默认键值的数据。

  sValue 指定一个字符串数据的数组。

  uint32 GetMultiStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);

  GetMultiStringValue 方法为数据类型为 REG_MULTI_SZ 的键值返回数据。如果成功,GetMultiStringValue 方法返回一个 uint32 是 0;如果出现错误,则返回其他值。

  sSubKeyName 指定包含键值的路径。

  sValueName 指定要检索数据的键值名。指定一个空字符串来得到默认键值。

  sValue 包含键值的一个字符串数据数组。

  uint32 SetExpandedStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] string sValue);

  SetExpandedStringValue 方法为数据类型为 REG_EXPAND_SZ 的键值设置数据。如果成功,SetExpandedStringValue 方法返回一个 uint32 是 0;如果出现错误,则返回其他值。

  sSubKeyName 指定包含要设置的键值的项。

  sValueName 指定要设置数据的键值名。您可指定一个现有的键值 (更新) 或一个新的键值 (创建)。指定一个空的字符串来设置默认键值的数据。

  sValue 指定一个扩展的字符串数据。字符串里指定的环境变量必须存在,这样当您调用 GetExpandedStringValue 时,字符串才能被扩展。

  uint32 GetExpandedStringValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] string sValue);

  GetExpandedStringValue 方法为数据类型为 REG_EXPAND_SZ 的键值返回数据。

  sSubKeyName 指定包含键值的路径。

  sValueName 指定要检索数据的键值名。指定一个空字符串来得到默认键值。

  sValue 包含扩展的键值的字符串数据。只有当环境变量 (例如, %Path%) 被定义,字符串方能得以扩展。

  uint32 SetBinaryValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[in] uint8 uValue);

  SetBinaryValue 方法为数据类型为 REG_BINARY 的键值设置数据。如果成功,The SetBinaryValue 方法返回一个 uint32 是 0;如果出现错误,则返回其他值。

  sSubKeyName 指定包含要设置的键值的项。

  sValueName 指定要设置数据的键值名。您可指定一个现有的键值 (更新) 或一个新的键值 (创建)。指定一个空的字符串来设置默认键值的数据。

  uValue 指定一个二进制数据数组。

  uint32 GetBinaryValue([in] uint32 hDefKey,[in] string sSubKeyName,[in] string sValueName,[out] uint8 uValue);

  GetBinaryValue 方法为数据类型为 REG_BINARY 的键值返回数据。如果成功,The GetBinaryValue 方法返回一个 uint32 是 0;如果出现错误,则返回其他值。

  sSubKeyName 指定包含键值的路径。

  sValueName 指定要检索数据的键值名。指定一个空字符串来得到默认键值。

  uValue 包含一个二进制字节数组。

验证访问权限

  uint32 CheckAccess([in] uint32 hDefKey,[in] string sSubKeyName,[in] uint32 uRequired,[out] boolean bGranted);

  CheckAccess 方法验证用户拥有指定的权限。如果成功,该方法返回一个 uint32 是 0;如果出现错误,则返回其他值。

  sSubKeyName 包含要验证访问权限的子项。

  uRequired 指定要验证的访问权限可选参数。您可将这些值加在一起来验证多个访问权限。默认值为 3。以下访问权限值被定义于 Winnt.h:

  KEY_QUERY_VALUE (0x0001)

  KEY_SET_VALUE (0x0002)

  KEY_CREATE_SUB_KEY (0x0004)

  KEY_ENUMERATE_SUB_KEYS (0x0008)

  KEY_NOTIFY (0x0010)

  KEY_CREATE_LINK (0x0020)

  DELETE (0x00010000)

  READ_CONTROL (0x00020000)

  WRITE_DAC (0x00040000)

  WRITE_OWNER (0x00080000)

  bGranted

  如果用户拥有指定的访问权限,这个参数为 True。否则,参数为 False.

posted on 2009-05-26 09:20  永无止境  阅读(1201)  评论(0编辑  收藏  举报