python读取注册表中值的方法


Posted in Python onApril 08, 2013

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

下面的例子是通过Python获取Windows XP下已经安装的补丁号。Windows的补丁号都在“HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\\Updates”下,通过循环下面所有的目录节点,如果找到的名称符合正则表达式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 = 'SOFTWARE\\Microsoft\\Updates'
  patch = re.compile('(KB\d{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,
  "Software\\Microsoft\\Windows\CurrentVersion\\Explorer"
  )

#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 enumerate遍历数组示例应用
Sep 06 Python
Python入门篇之字符串
Oct 17 Python
在windows系统中实现python3安装lxml
Mar 23 Python
如何用python整理附件
May 13 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
Sep 13 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
详解Open Folder as PyCharm Project怎么添加的方法
Dec 29 Python
重命名批处理python脚本
Apr 05 #Python
Python编写的com组件发生R6034错误的原因与解决办法
Apr 01 #Python
Python中用Ctrl+C终止多线程程序的问题解决
Mar 30 #Python
python利用hook技术破解https的实例代码
Mar 25 #Python
利用python获得时间的实例说明
Mar 25 #Python
python 将字符串转换成字典dict
Mar 24 #Python
使用python提取html文件中的特定数据的实现代码
Mar 24 #Python
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
解析mysql left( right ) join使用on与where筛选的差异
2013/06/18 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
JavaScript经典效果集锦
2010/07/06 Javascript
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
纯javascript版日历控件
2016/11/24 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
vue.js中created方法作用
2018/03/30 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
这应该是最详细的响应式系统讲解了
2019/07/22 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
JavaScript监听一个DOM元素大小变化
2020/04/26 Javascript
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
django中send_mail功能实现详解
2018/02/06 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
在Django中实现添加user到group并查看
2019/11/18 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
幼师专业毕业生自荐信
2013/09/29 职场文书
会计自荐书
2013/12/02 职场文书
领导证婚人证婚词
2014/01/13 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
总经理致辞
2015/07/29 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS