python中拒绝访问

时间:2016-04-09 12:40:44

标签: python python-2.7 winreg

我想通过以下代码添加python注册表项:

import _winreg
from time import sleep
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\\Microsoft\\Windows\\CurrentVersion\\Run',_winreg.KEY_SET_VALUE)
_winreg.SetValueEx(key,'Windows-Update',0,_winreg.REG_BINARY,'C:\Windows\System32\SystemSetting\Block.exe') 
key.Close()

但它显示了此错误WindowsError: [Error 5] Access is denied

任何解决方案?

编辑 - 我已经将其作为管理员运行

EDIT2 - 与KEY_ALL_ACCESS

有关

2 个答案:

答案 0 :(得分:1)

在命令提示符下运行python程序。 Windows中有一个command prompt (Admin)程序。或者只需右键点击Command prompt并选择Run as administrator即可。 Ref

答案 1 :(得分:0)

这不是关于runnig作为管理员。我尝试使用runnig作为管理员,但仍然收到Acces is denied消息。

您必须使用保留的整数,默认为0。

  

_winreg.OpenKey(key,sub_key [,res [,sam]])... res是保留的整数,必须为零。默认值为零。

所以,它应该是这样的:

key = wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, "Software\\TestCompany\\TestProject",0, wreg.KEY_SET_VALUE)

您不必像建议here一样使用KEY_ALL_ACCESS。只需在0之前添加_winreg.KEY_SET_VALUE