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单元测试框架unittest简明使用实例
Apr 13 Python
Python表示矩阵的方法分析
May 26 Python
python3实现名片管理系统
Nov 29 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
python3安装crypto出错及解决方法
Jul 30 Python
python使用OpenCV模块实现图像的融合示例代码
Apr 10 Python
Python openpyxl 插入折线图实例
Apr 17 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
python PIL模块的基本使用
Sep 29 Python
只用20行Python代码实现屏幕录制功能
Jun 02 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 代码优化的42条建议 推荐
2009/09/25 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php无限级分类实现方法分析
2016/10/19 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
jQuery倒计时代码(超简单)
2017/02/27 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Python中非常实用的一些功能和函数分享
2015/02/14 Python
通过代码实例展示Python中列表生成式的用法
2015/03/31 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python中字符串的处理技巧分享
2016/09/17 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
c++工程师面试问题
2013/08/04 面试题
介绍一下木马病毒的种类
2015/07/26 面试题
创建市级文明单位实施方案
2014/03/01 职场文书
保护环境倡议书300字
2014/05/19 职场文书
运动会宣传口号
2014/06/09 职场文书
cf战队收人口号
2014/06/21 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis