使用Python的winreg模块查询Windows注册表中的键值对
发布时间:2024-01-06 05:16:25
Python中的winreg模块提供了对Windows注册表的访问和操作。使用该模块,可以查询、修改和创建注册表中的键值对。
下面是一个基本的使用例子,展示了如何使用winreg模块来查询Windows注册表中的键值对:
import winreg
def query_registry(key, subkey, name):
try:
# 打开指定的注册表键
reg_key = winreg.OpenKey(key, subkey, 0, winreg.KEY_READ)
# 查询特定名称的键值
value, _ = winreg.QueryValueEx(reg_key, name)
# 关闭注册表键
winreg.CloseKey(reg_key)
return value
except WindowsError:
return None
# 查询HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion的RegisteredOwner键值
registered_owner = query_registry(winreg.HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion", "RegisteredOwner")
print("Registered Owner:", registered_owner)
# 查询HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的ProductName键值
product_name = query_registry(winreg.HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
print("Product Name:", product_name)
在上述例子中,首先定义了一个query_registry函数,该函数接受三个参数:key表示注册表根键,subkey表示相对于根键的子键路径,name表示要查询的键值名称。函数通过winreg.OpenKey打开注册表键,调用winreg.QueryValueEx查询指定名称的键值,然后通过winreg.CloseKey关闭注册表键。如果查询失败则返回None。
接下来,在主程序中使用query_registry函数查询了两个键值对:
- 查询HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion的RegisteredOwner键值,即当前用户的注册名;
- 查询HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的ProductName键值,即当前系统的产品名称。
通过上述例子,我们可以看到使用winreg模块可以很方便地查询注册表中的键值对。可以根据具体的需求,修改query_registry函数的参数来查询不同的键值对。
