首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows注册表对Python脚本的访问

Windows注册表对Python脚本的访问
EN

Stack Overflow用户
提问于 2018-12-08 19:57:15
回答 1查看 3.3K关注 0票数 1

我正在开发一个Python3.7脚本,它最终将像reg.exe那样成为一个CLI程序。我的目标是包括添加,删除和查询键和子键的能力。此时,我可以创建一个新键并遍历特定路径中的所有键;一旦我尝试向我创建的新键写入一个值,就会被拒绝WinError 5访问。

我是否可以在脚本中包括一种访问注册表的方法?

我仍然是Python和编程的初学者,我看过一些文档,但我不明白这一点。

任何帮助都将不胜感激。我的代码太远了:

代码语言:javascript
复制
import winreg

reg_connection = winreg.ConnectRegistry(None, winreg.HKEY_CURRENT_USER)

reg_key = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\\")

winreg.CreateKey(reg_key, "New Key")

for key in range(3000):
    try:
        show_sub_keys = winreg.EnumKey(reg_key, key)
        print(show_sub_keys)
    except WindosError:
        break

new_key_value = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\New Key")
winreg.SetValueEx(new_key_value, "New Value",0,winreg.REG_SZ, "This Value")
winreg.CloseKey(new_key_value)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-08 20:42:00

new_key_value = winreg.OpenKey(reg_connection,r"SOFTWARE\Microsoft\New Key")

在这里,您没有为可选的access参数指定参数,因此调用传递了KEY_READ的默认值。因此,您只能从键中读取,而不能写入。

应该为access参数传递一个参数,该参数指定所需的权限:

代码语言:javascript
复制
new_key_value = winreg.OpenKey(reg_connection, r"SOFTWARE\Microsoft\New Key", 0, 
                               winreg.KEY_SET_VALUE)

有关详细信息,请参阅winreg参考

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53686411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档