在python3以上,_winreg已经变成了winreg

 

读取注册表

读取用的方法是OpenKey方法:打开特定的key

winreg.OpenKey(key,sub_key,res=0,sam=KEY_READ)

# Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
import winreg
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run")
#获取该键的所有键值,遍历枚举
try:
    i=0
    while 1:
        #EnumValue方法用来枚举键值,EnumKey用来枚举子键
        name,value,type = winreg.EnumValue(key,i)
        print( repr(name),value,type)
        i+=1
except WindowsError:
    print
#假如知道键名,也可以直接取值
value,type = winreg.QueryValueEx(key,"Everything")
print("Everything",value,type)

 

Python 注册表操作_python

 

 

 

### 创建新键值nzblnk: Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\nzblnk
import winreg as reg
key = reg.CreateKey(reg.HKEY_CURRENT_USER, 'SOFTWARE\\Classes\\nzblnk')
reg.SetValue(key, '', reg.REG_SZ, 'URL:nzblnk')
reg.SetValueEx(key, 'URL Protocol', 0, reg.REG_SZ, '')
reg.CloseKey(key)

 

Python 注册表操作_Computer_02

 

 

 

## 修改已有的键值
## Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\nzblnk
import winreg as reg
key = reg.OpenKey(reg.HKEY_CURRENT_USER, 'SOFTWARE\\Classes\\nzblnk',0,winreg.KEY_ALL_ACCESS)
reg.SetValue(key, '', reg.REG_SZ, 'URL:nzblnkNEW') ## 修改已有的键值
reg.SetValueEx(key, 'URL Protocol', 0, reg.REG_SZ, 'NEW') ## 修改已有的键值
reg.CloseKey(key)

 

Python 注册表操作_Computer_03

 

 

## 修改已有的键值
## Computer\HKEY_CURRENT_USER\SOFTWARE\Classes\nzblnk
import winreg as reg
key = reg.OpenKey(reg.HKEY_CURRENT_USER, 'SOFTWARE\\Classes\\nzblnk',0,winreg.KEY_ALL_ACCESS)
reg.SetValueEx(key, 'XXX', 0, reg.REG_SZ, 'NEWXXX') ## 修改已有的键值; 如果没有则会新建;如果已经存在则会修改;
reg.CloseKey(key)

 

Python 注册表操作_Computer_04

 

 

 

创建 修改注册表

创建key: winreg.CreateKey(key,sub_key)

删除key:  winreg.DeleteKey(key,sub_key)

删除键值: winreg.DeleteValue(key,value)

给新建的key赋值: winreg.SetValue(key,sub_key,type,value)

 

 

REF

https://www.jb51.net/article/179589.htm

https://vimsky.com/examples/detail/python-method-winreg.CreateKey.html