注册表项在设置无效值时将采用默认值

时间:2011-08-16 09:47:05

标签: c++ winapi

我正在设置一个具有无效值的注册表项(使用REG_SZ设置REG_DWORD键值)。注册表是否会保留之前的值,还是会将其重置为默认值?

例如。我已设置REG_DWORD键并将其设置为值'4'。该键的默认值为“2”。现在,当我尝试使用带有无效REG_SZ值的api'RegSetValueEx(...)'设置此密钥时。集是成功的。现在,如果我得到这个键值,那么它是默认值'2'还是先前设定值'4'??

1 个答案:

答案 0 :(得分:3)

  

RegSetValueEx设置注册表项下指定值的数据和类型

它只会将存储值的类型更改为REG_SZ并设置您指定的值,它不会检查之前的值或类型。因此,当您读取该值时,您将获得您在那里设置的最后一个值。没有'无效'REG_SZ这样的东西。

还要忘记'密钥的默认值'。这不是你的想法。这是如果某些内容失败,API将返回的值,它只是一个匿名值的奇特名称。