即使重新启动后,regedit仍会显示已删除的密钥

时间:2013-07-24 00:26:10

标签: python winreg

我正在使用winreg.DeleteKey从注册表中删除密钥。我使用API​​没有问题;但是我遇到了一个奇怪的问题,如果我从HKEY_LOCAL_MACHINE \ SOFTWARE删除一个密钥,代码成功运行并删除(如果我再次运行它说它找不到密钥,因为它刚被删除),但关键在重新启动后仍然显示在Regedit中!

我甚至可以在Regedit中编辑密钥的值!但是,如果我再次尝试删除密钥,则会引发WindowsError,说它无法找到指定的文件,即使它第一次运行!

有人知道发生了什么吗?这令人费解,我似乎无法找到任何相关信息。

编辑:显然,32位应用程序打开32位密钥,而不是64位密钥。当我试图像这样打开钥匙时:

aKey = winreg.OpenKeyEx(akey, subkey_str, 0, winreg.KEY_WOW64_64KEY)

我收到“访问被拒绝”错误消息。我试过用runas运行脚本,打开终端作为管理员。我的用户帐户具有管理员权限,我的事件甚至检查了密钥本身的权限。管理员和所有用户都可以完全访问密钥。

为什么我无法打开它的任何想法?

0 个答案:

没有答案