尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

使用python读取windows注册表

使用python读取windows注册表
📅 发布时间:2026/6/19 21:44:08

在windows系统中,注册表 是系统定义的数据库,应用程序和系统组件在其中存储和检索配置数据。
注册表是一个分层数据库,其中包含对 Windows本身以及Windows上运行的应用程序和服务至关重要的数据。 因此我们还是不好进行随意操作,但是查看注册表的信息可以让我们更加了解系统的运行情况。
数据以树格式进行结构化。树中的每个节点称为键。每个键可以同时包含子项和数据条目,称为值。
通过查看注册表的数据我们可以发现一些比较有趣的系统信息。比如我们可以通过注册表看到用户定义的环境变量,

reg1

也可以查看菜单在文件夹空白处右键的菜单操作。

reg2

以下是使用python3对注册表进行读取的代码。

import winregdef enumerate_registry_values(key, sub_key):"""枚举注册表键中的所有值:param key_path: 注册表键路径"""# key  可以是一个打开的key,或者winreg预定义的值HKEY_* constantstry:reg_key = winreg.OpenKey(key, sub_key, 0, winreg.KEY_READ)except OSError:print(f"can't open key {key}/{sub_key}")returnvalues = []index = 0while True:try:# 枚举值value_name, value_data, value_type = winreg.EnumValue(reg_key, index)values.append((value_name, value_data, value_type))index += 1except OSError:# 当没有更多值时跳出循环breakwinreg.CloseKey(key)print(f"枚举值成功 - 路径: {key}{sub_key}, 值数量: {len(values)}")for name, data, type_ in values:print(f"  名称: {name}, 值: {data}, 类型: {type_}")print("基于注册表查看用户环境变量")
# 查看用户定义的环境变量路径是:HKEY_CURRENT_USER\Environment
enumerate_registry_values(winreg.HKEY_CURRENT_USER,"Environment")def get_children_key_names(key, sub_key):"""获取key的子节点的key并且以数组返回"""# key  可以是一个打开的key,或者winreg预定义的值HKEY_* constantsreg_key = winreg.OpenKey(key, sub_key, 0, winreg.KEY_READ)sub_key_names = []index = 0while True:try:# 枚举值sub_key_name = winreg.EnumKey(reg_key, index)sub_key_names.append(sub_key_name)index += 1except OSError:# 当没有更多值时跳出循环breakwinreg.CloseKey(key)return sub_key_namesprint("基于注册表查看对文件夹右键菜单的操作")
# 遍历路径:\HKEY_CLASSES_ROOT\Directory\Background\shell,查看针对文件夹中空白处右键菜单的操作
sub_key_names=get_children_key_names(winreg.HKEY_CLASSES_ROOT,r"Directory\Background\shell")
for sub_key_name in sub_key_names:# 菜单的操作在command的值中enumerate_registry_values(winreg.HKEY_CLASSES_ROOT,r'Directory\Background\shell\\'+""+sub_key_name+r"\command")

输出如下:

reg3

相关新闻

  • 当日总结
  • 3123004481
  • 使用python读取windows日志表

最新新闻

  • 巴特沃斯滤波器实战:Python信号处理从原理到可视化
  • Draggabilly终极指南:三大核心配置让你的拖拽交互更智能
  • 2026洛阳防水补漏维修团队实测盘点TOP4:洛阳业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮
  • 深耕禅城防水领域 匠心守护安居|微顺虹防水:初心筑品质,服务护万家 - 徽顺虹
  • 国产AI生图开源困境:技术能力与生态节奏的错位
  • 曦云C系列GPU如何实现GLM-5.1 Day 0全栈适配

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号