通过Python操作注册表有两种方式,第一种是通过Python的内置模块 _winreg;另一种方式就是Win32 Extension For Python 的win32api模块,但是需要进行额外的安装。这里主要给出一些_winreg和win32api的Demo代码。


1、 _winreg
可以参考官方的参考文档:
http://docs.python.org/library/_winreg.html
http://www.python.org/doc/2.6.2/library/_winreg.html
1.1 读取
import _winreg
 
 key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer")
 
  #获取该键的所有键值,因为没有方法可以获取键值的个数,所以只能用这种方法进行遍历
  try:
     i = 0
 while1:
 #EnumValue方法用来枚举键值,EnumKey用来枚举子键
          name, value, type = _winreg.EnumValue(key, i)
 print repr(name),
         i +=1
  except WindowsError:
 print
 
  #如果知道键的名称,也可以直接取值
  value, type = _winreg.QueryValueEx(key, "EnableAutoTray")


1.2 创建、修改


import _winreg
 
 key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Explorer")
 
 #删除键
 _winreg.DeleteKey(key, "Advanced")
  
 #删除键值
 _winreg.DeleteValue(key, "IconUnderline")
  
 #创建新的键
 newKey = _winreg.CreateKey(key,"MyNewkey")
  
 #给新创建的键添加键值
 _winreg.SetValue(newKey,"ValueName",0,"ValueContent")
#第二参数必须是HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE等预先定义好的值,拿到返回的key后就可以进行操作了
key = _winreg.ConnectRegisty("IP地址或者机器名",_winreg.HKEY_CURRENT_USER)
import _winreg
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"Software\Microsoft\Windows") 
newKey = _winreg.CreateKey(key,"MyNewkey")
import win32api 
import win32con
 
key = win32api.RegCreateKeyEx(win32con.HKEY_LOCAL_MACHINE, r"Software\Microsoft\Windows", win32con.WRITE_OWNER |win32con.KEY_WOW64_64KEY|win32con.KEY_ALL_ACCESS)
win32api.RegSetValueEx (key,"MyNewkey", 0, win32con.REG_SZ, keyValue)