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

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

     

image.png

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

image.png

# -*- 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, "小蓝枣")

修改完后刷新一下就生效了。

image.png

默认添加注册表项的话需要在指定路径下进行添加,如果原注册表里路径就是不全的,添加会报错,下面的方法可以实现在添加注册表前检测路径是否是完整的,不完整的话会自动进行补全。

因为用到了 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

喜欢的点个赞❤吧!

           

目录
相关文章
|
1天前
|
SQL 关系型数据库 数据库连接
使用 Python 访问数据库的基本方法
【5月更文挑战第12天】在Python中操作数据库涉及安装数据库驱动(如mysql-connector-python, psycopg2, pymongo)、连接数据库、执行查询/更新、处理结果集及关闭连接。使用ORM(如SQLAlchemy)可简化操作。通过上下文管理器(with语句)能更好地管理资源和错误。注意根据实际需求处理事务、错误和安全性,例如使用SSL连接。
18 2
|
1天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
【5月更文挑战第10天】BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
20 1
|
1天前
Python---random库
Python---random库
5 1
|
1天前
|
SQL 开发框架 .NET
Python---time库
Python---time库
9 2
Python---time库
|
1天前
|
存储 Java 数据安全/隐私保护
Python----类对象和实例对象
Python----类对象和实例对象
9 2
|
1天前
|
数据采集 数据可视化 数据挖掘
利用Python和Pandas库优化数据分析流程
在当今数据驱动的时代,数据分析已成为企业和个人决策的重要依据。Python作为一种强大且易于上手的编程语言,配合Pandas这一功能丰富的数据处理库,极大地简化了数据分析的流程。本文将探讨如何利用Python和Pandas库进行高效的数据清洗、转换、聚合以及可视化,从而优化数据分析的流程,提高数据分析的效率和准确性。
|
1天前
|
Python
Python 内置正则表达式库re的使用
正则表达式是记录文本规则的代码,用于查找和处理符合特定规则的字符串。在Python中,常通过原生字符串`r'string'`表示。使用`re.compile()`创建正则对象,便于多次使用。匹配字符串有`match()`(从开头匹配)、`search()`(搜索首个匹配)和`findall()`(找所有匹配)。替换字符串用`sub()`,分割字符串则用`split()`。
15 3
|
1天前
|
Java Python
Python 内置库 多线程threading使用讲解
本文介绍Python中的线程基础。首先展示了单线程的基本使用,然后通过`threading`模块创建并运行多线程。示例中创建了两个线程执行不同任务,并使用`active_count()`和`enumerate()`检查线程状态。接着讨论了守护线程,主线程默认等待所有子线程完成,但可设置子线程为守护线程使其随主线程一同结束。`join()`方法用于主线程阻塞等待子线程执行完毕,而线程池能有效管理线程,减少频繁创建的开销,Python提供`ThreadPoolExecutor`进行线程池操作。最后提到了GIL(全局解释器锁),它是CPython的机制,限制了多线程并行执行的能力,可能导致性能下降。
12 1
|
1天前
|
存储 机器学习/深度学习 数据可视化
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
基于Python的数据分组技术:将数据按照1, 2, 3规则分为三个列表
8 1
|
1天前
|
数据可视化 数据挖掘 数据处理
Altair:Python数据可视化库的魅力之旅
Altair:Python数据可视化库的魅力之旅
11 0