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生成器实现微线程编程的教程
Apr 13 Python
使用Python的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
举例讲解Python中的算数运算符的用法
May 13 Python
Python3遍历目录树实现方法
May 22 Python
Python中类的初始化特殊方法
Dec 01 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
python遍历一个目录,输出所有的文件名的实例
Apr 23 Python
Python定义函数功能与用法实例详解
Apr 08 Python
使用Python在Windows下获取USB PID&VID的方法
Jul 02 Python
virtualenv介绍及简明教程
Jun 23 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 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
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
PHP实现的策略模式示例
2019/03/20 PHP
js验证表单第二部分
2006/11/25 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
2010/04/25 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
AspNet中使用JQuery boxy插件的确认框
2015/05/20 Javascript
使用javascript插入样式
2016/03/14 Javascript
微信小程序实现的涂鸦功能示例【附源码下载】
2018/01/12 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python 函数基础知识汇总
2018/03/09 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
Python WSGI的深入理解
2018/08/01 Python
Python画图高斯分布的示例
2019/07/10 Python
Python Pandas 箱线图的实现
2019/07/23 Python
pandas的排序和排名的具体使用
2019/07/31 Python
Python3获取cookie常用三种方案
2020/10/05 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
全球在线商店:BerryLook
2019/04/14 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
助人为乐道德模范事迹材料
2014/08/16 职场文书
户籍证明模板
2014/09/28 职场文书
商业门面租房协议书
2014/11/25 职场文书
见义勇为事迹材料
2014/12/24 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL