加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python之windows模块_winreg的使用心得

(2016-07-14 14:22:26)
分类: python
_winreg模块可以用来操作windows的注册表
首先用OpenKey获得句柄handle:
_winreg.OpenKey(key, sub_key[, res[, sam]])

这个就是句柄

handler=_winreg.OpenKey(_winreg.HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client,'LocalDevices')就获得了指向LocalDevices的句柄,我们可以对它进行操作了.

windows注册表的组成是由类似键值对组成的,键(key)是上文说的LocalDevices,值分三种

name,type,data 我们想要获得键值,可以用EnumKey(key,index)和EnumValue(key,index)因为一个句柄下可能有很多Key和多个Value多亿需要索引index来确定位置,如果要遍历,可以用循环.


接下来的操作是对注册表的增删改查:

_winreg.CreateKey(key,sub_key) 在key下创建一个subkey,返回值指向subkey

_winreg.DeleteKey(key,sub_key) 该函数用于删除key下的指定subkey

_winreg.SetValue(key,sub_key,type,value) 设置subkey的type和value(因为没规定名称,所以是第一个默认)
_winreg.SetValueEx(key,value_name,reserved,type,value) 该函数用于设置key中对应name的type和value

_winreg.QueryValue(key,sub_key) 获取相应subkey的默认name的数据data

_winreg.QueryValueEx(key,value_name) 获取key中相应name的type和data,返回值是个元组tuple.

最后就是对句柄的关闭 _winreg.CloseKey()

简单例子如下:
  1. import _winreg
  2. handler=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,'SOFTWARE\Classes')
  3. key= _winreg.EnumKey(handler,1)
  4. key=_winreg.OpenKey(handler,str(key))
  5. val= _winreg.EnumValue(key,1)
  6. print val


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有