前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 技术篇-用win32库实现读取、添加、修改注册表的值实例演示

Python 技术篇-用win32库实现读取、添加、修改注册表的值实例演示

作者头像
小蓝枣
发布2021-12-01 10:47:59
9860
发布2021-12-01 10:47:59
举报
文章被收录于专栏:CSDN博客专家-小蓝枣的博客
在这里插入图片描述
在这里插入图片描述

注册表编辑器里默认有这 5 个根目录,每个目录的说明如下:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
# -*- 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(读取的注册表实体, "添加项的名字") 用来添加项。

代码语言:javascript
复制
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

喜欢的点个赞❤吧!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档