python读取注册表中值的方法
python读取注册表中值的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的WindowsAPI,使...

在Python的标准库中,_winreg.pyd可以操作Windows的注册表,另外第三方的win32库封装了大量的Windows API,使用起来也很方便。不过这里介绍的是使用_winreg操作注册表,毕竟是Python自带的标准库,无需安装第三方库。

下面的例子是通过Python获取Windows XP下已经安装的补丁号。Windows的补丁号都在“HKEY_LOCAL_MACHINESOFTWAREMicrosoftUpdates”下,通过循环下面所有的目录节点,如果找到的名称符合正则表达式KB(d{6}).*,则表示是一个补丁号。

从例子可以看出操作起来非常的简单和快速。

复制代码 代码如下:

# -*- coding: utf-8 -*-

# 获取Windows的已打的补丁号

from _winreg import *

import re

def subRegKey(key, pattern, patchlist):

# 个数

count = QueryInfoKey(key)[0]

for index in range(count):

# 获取标题

name = EnumKey(key, index)

result = patch.match(name)

if result:

patchlist.append(result.group(1))

sub = OpenKey(key, name)

subRegKey(sub, pattern, patchlist)

CloseKey(sub)

if __name__ == '__main__':

patchlist = []

updates = 'SOFTWAREMicrosoftUpdates'

patch = re.compile('(KBd{6}).*')

key = OpenKey(HKEY_LOCAL_MACHINE, updates)

subRegKey(key, patch, patchlist)

print 'Count: ' + str(len(patchlist))

for p in patchlist:

print p

CloseKey(key)

下面内容转自 Python Standard Library12.13 The _winreg Module

(Windows only, New in 2.0) The _winreg module provides a basic interface to the Windows registry database. Example 12-17 demonstrates the module.

Example 12-17. Using the _winreg Module

File: winreg-example-1.py

复制代码 代码如下:

import _winreg

explorer = _winreg.OpenKey(

_winreg.HKEY_CURRENT_USER,

"SoftwareMicrosoftWindowsCurrentVersionExplorer"

)

#list values owned by this registry key

try:

i = 0

while 1:

name, value, type= _winreg.EnumValue(explorer, i)

print repr(name),

i += 1

except WindowsError:

print

value, type = _winreg.QueryValueEx(explorer, "Logon User Name")

print

print "user is", repr(value)

'Logon User Name' 'CleanShutdown' 'ShellState' 'Shutdown Setting'

'Reason Setting' 'FaultCount' 'FaultTime' 'IconUnderline'...

user is u'Effbot'

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类