2022年 11月 5日

【python之操作注册表】Python删除注册表节点下的值

【python操作注册表】Python删除注册表节点下的值

背景

本来是别的平台的一个bug,以为自己去沟通然后让他们修就好了,结果又是这样别人的坑自己来填。主要是在卸载的时候要删除注册表下的所有节点。

关于python操作注册表模块

上网查了下,大致分为以下两种:第一种是通过Python的内置模块 winreg;另一种方式就是Win32 Extension For Python 的win32api模块,但是需要进行额外的安装。

Python的内置模块 winreg

比如,在注册表HKEY_LOCAL_MACHINE\SOFTWAR下,添加一个“”节点,如下图所示:
在这里插入图片描述
用Python的内置模块 winreg写出的代码如下`

import winreg
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"Software" )
newKey = winreg.CreateKey(key, " MyNewkey " )
  • 1
  • 2
  • 3

如果要删除该节点,则用wg.DeleteKey()

wg.DeleteKey(key, " MyNewkey " )
  • 1

Win32 Extension For Python 的win32api模块

win32api 和 winreg 的方法很类似,一般是多了一个前缀”Reg”。

遇到的一些问题

在用winreg模块写的时候,遇到了python中permissionerror winerror 5 的报错,上网上找了一些资料后发现对我不适用。后来想了一下应该是访问注册表的权限问题。
就用管理员的身份运行pycharm,在运行程序,就好啦。

关于permissionerror winerror 5 拒绝访问的问题

找到最多的是这个:三步解决python PermissionError: [WinError 5]拒绝访问的情况。
https://blog.csdn.net/qq_33731081/article/details/103812749
但是对于我这种情况没什么用处,大家遇到的话可以参考下。

参考文献

https://www.cnblogs.com/hester/p/7590358.html