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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python下singleton模式的实现方法
Jul 16 Python
Python中apply函数的用法实例教程
Jul 31 Python
python实现简单的计时器功能函数
Mar 14 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
python实现微信防撤回神器
Apr 29 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
Python使用Paramiko控制liunx第三方库
May 20 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使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
2014/06/10 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
用js代码改变单选框选中状态的简单实例
2013/12/18 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
javascript 构造函数方式定义对象
2015/01/02 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
Js apply方法详解
2017/02/16 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
vue生成token保存在客户端localStorage中的方法
2017/10/25 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
浅析微信小程序modal弹窗关闭默认会执行cancel问题
2019/10/14 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python的类实例属性访问规则探讨
2015/01/30 Python
解决matplotlib库show()方法不显示图片的问题
2018/05/24 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
LODI女鞋在线商店:阿利坎特的鞋类品牌
2019/02/15 全球购物
规范化管理年活动总结
2014/08/29 职场文书
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android