注册表编辑器里默认有这 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
喜欢的点个赞❤吧!