删除注册表项后,我尝试在C#中重新创建它。
我有时会收到错误:
“对已标记为删除的注册表项尝试非法操作。”
我尝试在重新创建之前延迟,但没有帮助。
任何提示?
答案 0 :(得分:2)
密钥仍有一个打开的句柄,因此即使已标记为删除,它仍未被清除。因此,您可以关闭任何引用该键的句柄,或者更好的是,只需修改它而不是先删除它。
答案 1 :(得分:1)
在重新创建密钥之前,您必须Close()
对密钥的所有引用。
答案 2 :(得分:0)
答案 3 :(得分:0)
作为described on TechNet,当某些内容仍然具有对该键的打开句柄时会发生这种情况。关闭所有句柄后,该键将被删除并可以重新创建。
答案 4 :(得分:-1)
以下是关键词:
标记为删除。
尚未删除!显然你不能重新创建它,但它会与(仍然)现有密钥冲突。因此,关闭或刷新任何C#对象不是问题:您需要说服操作系统清除注册表本身。我知道这样做的唯一方法就是重新启动计算机。
现在可能是你自己的程序阻止操作系统完成删除。但话又说回来可能是别的。