在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\nzblnkimport 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

查看原文