删除注册表中的(默认)条目会导致系统不稳定吗?

Pac*_*ier 2 windows windows-registry windows-vista

什么是点(Default)注册表项?

例如,在HKCU\Software\Microsoft\Windows\CurrentVersion\Run

在此处输入图片说明

如果我删除(Default)条目可以吗?

会不会导致系统不稳定?

Tam*_*man 5

这取决于(Default)您删除了哪些值,就像任何注册表值/键/配置单元一样。

除了您可以使用 RegSetValueEx 函数在注册表项下创建的所有命名值之外,还有所谓的默认值,您可以通过将 NULL 或指向空字符串的指针作为 lpValue 传递该值。此默认值也是您在调用 RegSetValue 和 RegQueryValue 时设置和检索的值。这个默认值有什么关系?

最初的 16 位注册表没有命名值。它只有键,与每个键相关联的是一条数据:一个字符串。对这些数据进行操作的函数是 RegSetValue 和 RegQueryValue,这就解释了为什么这些函数 (1) 没有 lpValue 参数和 (2) 只设置和检索字符串数据。因为回到 16 位世界,这就是你所拥有的。

在向 Win32 的转换中,注册表获得了新的功能,例如以超出简单字符串的格式存储数据,将多条数据存储在一个键下,使用名称来区分它们。过去简单地称为“注册表项的值”(因为只有一个,因此无需为其命名)现在使用特殊名称作为默认值:它是名称为空的值。

除了不寻常的名称之外,默认值没有什么特别的。命名值不必存在,如果存在,则数据类型可以是任何内容。同样,默认值也不必存在,它的类型可以是任何东西。此时,它只是一个名称奇怪的值。

MSDN 博客 — 旧的新事物 — 为什么注册表项有默认值?