在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)
### 创建新键值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)
## 修改已有的键值
## 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)
## 修改已有的键值
## 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)
创建 修改注册表
创建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