python3 winreg的使用记录

_winreg模块可以用来操作windows的注册表
首先用OpenKey获得句柄handle:

_winreg.OpenKey(keysub_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)

posted on 2017-11-17 15:08  辣鄙小鑫  阅读(4207)  评论(0编辑  收藏  举报

导航