使用Python(winreg)访问Windows注册表2025 年 1 月 4 日 | 阅读 6 分钟 Windows 注册表Windows 注册表(Registry)包含一些主要根键,每个根键都包含子键和值。基本根键如下:
每个键都可以包含子键和值。值可以是多种类型,包括字符串、双精度数据和 DWORD(32 位整数)。 ![]() winreg 模块简介winreg 模块(在 Python 2 中曾称为 _winreg)允许您与 Windows 注册表进行交互。以下是 winreg 提供的主要功能的概述:
![]() 打开注册表键 要对注册表键执行任何操作,您首先需要打开它。winreg.OpenKey 函数用于此目的。 在此示例中,我们在 HKEY_CURRENT_USER 下打开 MySoftware 键。字符串前的 r 表示原始字符串,确保反斜杠被字面处理。 读取值 要从打开的注册表键读取值,请使用 winreg.QueryValueEx 函数。 输出 The value is: 1 在这里,我们查询 MySoftware 键下名为 MyValue 的值。该函数返回一个元组,其中包含值和存储在注册表中的数据的类型。 写入值 要向注册表键写入值,请使用 winreg.SetValueEx 函数。 在此示例中,我们以写入权限 (winreg.KEY_SET_VALUE) 打开 MySoftware 键,然后将 MyValue 的值设置为 NewValue。winreg.REG_SZ 参数表示该值是字符串。 创建新键 要创建新键,请使用 winreg.CreateKey 函数。 此脚本在 HKEY_CURRENT_USER 下创建名为 MyNewSoftware 的新键,并设置一个名为 MyValue 的值。 删除值 要从注册表键中删除值,请使用 winreg.DeleteValue 函数。 在这里,我们删除 MySoftware 键下名为 MyValue 的值。 删除键 要删除注册表键,请使用 winreg.DeleteKey 函数。 此脚本删除 MyNewSoftware 键。请注意,该键必须为空(即,不包含任何子键或值)才能被删除。 实际示例和用例让我们看一些使用 Python 控制 Windows 注册表的实际示例和用例。 示例 1:检查软件安装情况 假设您需要通过查找其注册表项来检查特定软件是否已安装在系统中。 输出 Some Software is installed. 此函数检查 Uninstall 注册表项,以确定预定的软件是否已列出。 说明 该示例使用 winreg 模块与 Windows 注册表进行交互,特别是检查软件是否已安装在系统中。它定义了一个名为 is_software_installed 的函数,该函数以软件名称作为输入。在该函数中,它尝试打开注册表中的 Uninstall 键,软件项通常存储在该位置。通过遍历此键下的子键并检查其 DisplayName 值,它确定是否找到预定的软件。 最后,它根据函数的返回值打印一条消息,指示软件是否已安装。此方法提供了一种直接从 Windows 注册表查询软件安装状态的清晰方法。 示例 2:将应用程序添加到启动项 要将应用程序添加到系统启动项,您可以在 Run 键下创建一个注册表项。 输出 Chrome added to startup 说明 该示例使用 winreg 模块将应用程序添加到系统启动项。它定义了一个名为 add_to_startup 的函数,该函数以应用程序名称及其完整路径作为参数。在该函数中,它访问当前用户注册表配置单元下的 Run 键。然后,它使用 winreg.SetValueEx 设置一个注册表值,其名称和路径与提供的应用程序名称和路径相匹配,从而有效地指示 Windows 在启动时启动该应用程序。成功添加项后,它会关闭注册表键。最后,它打印一条确认消息,表明该应用程序已添加到启动项。此方法提供了一种通过注册表控制来自动化 Windows 系统上应用程序启动行为的直接方法。 此脚本将应用程序添加到启动列表,以便在用户登录时自动运行。 示例 3:读取系统信息 您可以使用注册表读取系统信息,例如 Windows 版本。 此函数从注册表中检索并打印 Windows 版本信息。 处理注册表权限在操作注册表时,您可能会遇到权限问题。某些注册表键受到保护,需要提升的权限(管理员权限)才能修改。您可以通过捕获异常并通知用户来处理这些问题。 在此示例中,我们捕获 PermissionError 异常,并在操作因权限不足而失败时打印一条消息。 高级注册表操作枚举子键和值您可以使用 winreg.EnumKey 和 winreg.EnumValue 来枚举键内的子键和值。 此函数列出指定注册表键下的所有子键和值。 修改二进制和 DWORD 值winreg 模块支持多种值类型,包括二进制 (winreg.REG_BINARY) 和 DWORD (winreg.REG_DWORD)。以下是读取和写入这些类型值的方法。 结论该主题展示了一种使用 Python 和 winreg 模块将应用程序添加到 Windows 系统启动项的清晰方法。通过访问 Windows 注册表中的 Run 键,脚本设置了一个具有应用程序名称和路径的注册表值,确保在用户登录时自动启动指定的应用程序。此方法提供了一种方便的方式来定制系统启动行为,允许用户通过自动化常用应用程序的启动来简化工作流程。然而,在对 Windows 注册表进行更改时,务必谨慎行事,因为不正确的修改可能会影响系统稳定性。总而言之,此脚本提供了一种简单而有效的方法来自动化管理 Windows 系统上的启动应用程序。 |
高斯模糊是一种图像处理策略,通过对图像应用高斯函数来减少图像中的噪声和细节。高斯模糊算法通过将图像与高斯块进行卷积来工作,高斯块是一个 2D 矩阵,表示高斯...
阅读 12 分钟
介绍 datetime 中有一个 weekday() 函数。Python 的 date 类会生成一个表示星期几的整数,其中星期一为 0,星期日为 6。这是一种在给定日期查找星期几的实用方法,适用于多种用途,包括数据...
阅读 3 分钟
Python 中的 TLS/SSL 简介 TLS (Transport Layer Security) 和 SSL (Secure Sockets Layer) 是用于保护网络通信安全的加密协议。在 Python 中,`ssl` 模块实现了这些协议,提供了创建安全连接的功能。通过包装套接字,开发人员可以...
阅读 3 分钟
历史股票价格数据简介 历史股票价格数据是金融分析、风险策略和算法交易的循环资产。它提供了过去股票表现的记录,包括开盘价和收盘价、每日涨跌以及交易等指标...
阅读 6 分钟
简介 Python 3 是一种易于学习的编程语言,适合初学者,并以其可读性和简单性而闻名。自 2008 年发布以来,它已成为数据分析、人工智能、Web 开发等领域最广泛使用的语言之一...
阅读 6 分钟
Python 是一种多功能且功能强大的编程语言,广泛用于科学计算和数据分析。NumPy 库是该领域的基石,为数值运算提供了高效、高性能的工具。NumPy 的基本功能之一是 ndarray,...
阅读 6 分钟
在这个问题中,我们给定一个整数,我们的任务是给出一个表示该整数在罗马数字系统中的字符串。让我们看一些例子来理解这个问题。输入:10 输出:X 输入:4 输出:IV 输入:60 输出:LX 输入:1903 输出:MCMIII 以下是一个列表...
阅读 6 分钟
简介 几种用于自动化流程、脚本使用和通用软件开发的重要工具已在不断变化的编程语言领域中发展起来,它们是 PowerShell 和 Python。上述编程语言如今相当普遍,并已在各种...
7 分钟阅读
简介:在本教程中,我们将学习 Python 对 gzip 文件的支持。GZip 应用程序用于压缩和解压缩文件。它是 GNU 项目的一部分。Python 的 gzip 模块是 GZip 实现的接口。GZip 文件压缩算法本身...
阅读 6 分钟
? 文本文件比较是编程中的常见任务,通常用于版本控制、数据验证和质量保证等任务。凭借其多功能库,Python 提供了比较两个文本文件的有效方法。本文将探讨 Python 提供的各种方法和库...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India