Python 注册表操作
在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