重新创建我刚刚删除的注册表项时出错

时间:2009-10-22 18:05:47

标签: c# registry

删除注册表项后,我尝试在C#中重新创建它。

我有时会收到错误:

“对已标记为删除的注册表项尝试非法操作。”

我尝试在重新创建之前延迟,但没有帮助。

任何提示?

5 个答案:

答案 0 :(得分:2)

密钥仍有一个打开的句柄,因此即使已标记为删除,它仍未被清除。因此,您可以关闭任何引用该键的句柄,或者更好的是,只需修改它而不是先删除它。

答案 1 :(得分:1)

在重新创建密钥之前,您必须Close()对密钥的所有引用。

答案 2 :(得分:0)

您是否尝试过调用Close()? 如果做不到这一点,你可以试试Flush()

答案 3 :(得分:0)

作为described on TechNet,当某些内容仍然具有对该键的打开句柄时会发生这种情况。关闭所有句柄后,该键将被删除并可以重新创建。

答案 4 :(得分:-1)

以下是关键词:

  

标记为删除。

尚未删除!显然你不能重新创建它,但它会与(仍然)现有密钥冲突。因此,关闭或刷新任何C#对象不是问题:您需要说服操作系统清除注册表本身。我知道这样做的唯一方法就是重新启动计算机。

现在可能是你自己的程序阻止操作系统完成删除。但话又说回来可能是别的。