注册表编辑器里默认有这 5 个根目录,每个目录的说明如下:
# -*- coding: UTF8 -*- # 日期:2020.12.15 # 作者:小蓝枣 import win32api import win32con # 读取注册表 reg = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Policies\\Google\\Update', 0, win32con.KEY_ALL_ACCESS) def set_reg(reg, reg_name, reg_type, reg_value): """ 作用:设置注册表 参数0:注册表 参数1:设置项的名字 参数2:设置项的类型 参数3:设置项的值 """ win32api.RegSetValueEx(reg, reg_name, 0, reg_type, reg_value); # 设置注册表 set_reg(reg, "UpdateDefault", win32con.REG_DWORD, 0) set_reg(reg, "Python", win32con.REG_SZ, "小蓝枣")
修改完后刷新一下就生效了。
默认添加注册表项的话需要在指定路径下进行添加,如果原注册表里路径就是不全的,添加会报错,下面的方法可以实现在添加注册表前检测路径是否是完整的,不完整的话会自动进行补全。
因为用到了 traceback.format_exc(),所以使用时要提前导入下 traceback 库。
win32api.RegCreateKey(读取的注册表实体, "添加项的名字")
用来添加项。
def test_item(reg_path): """ 作用:注册表项补全功能 参数:检查输入的项路径是否完整,不完整自动添加项将其补全 返回:读取注册表后的实体 """ reg = "" try: reg = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE, reg_path, 0, win32con.KEY_ALL_ACCESS) except Exception as e: if('系统找不到指定的文件。' in traceback.format_exc()): s = reg_path index = len(s) - s[::-1].index("\\"); key = test_item(s[:index-1]) win32api.RegCreateKey(key, s[index:]) reg = win32api.RegOpenKey(key, s[index:], 0, win32con.KEY_ALL_ACCESS) return reg
喜欢的点个赞❤吧!