场景
- 我们在
Windows上开发Python脚本时,需要读取系统设置或者判断某个软件是否安装,禁用自动更新等都需要对注册表进行修改,可以说非常常见。那么Python有什么模块可以修改注册表呢?
说明
-
Python3自带的winreg模块可以操作注册表,并不需要增加下载第三方模块。对于Python2用的是_winreg模块. -
Windows上凡是修改注册表都需要管理员模式,所以运行Python脚本时还是需要管理员权限的。 -
winreg对注册表的增加项,增加键值对,值类型都有对应的函数.
例子
- 以下例子我们用
Python写了WIN10禁用自动更新的修改注册表部分.
import winreg
import os
def TestWinReg():
explorer = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,"SOFTWARE\\Policies\\Microsoft\\Windows")
try:
i = 0
while 1:
name = winreg.EnumKey(explorer,i)
print(repr(name))
i += 1
except WindowsError as err:
print("OS error: {0}".format(err))
def AddForbidUpdateRegKeyValue(key,subKey,itemName,itemType,itemvalue):
try:
with winreg.CreateKey(key,subKey) as keyHandle:
winreg.SetValueEx(keyHandle,itemName,0,itemType,itemvalue)
except OSError as err:
print("error: ",repr(err))
pass
def RestoreUpdateAutoRegKeyValue(key,subKey,itemName):
try:
with winreg.OpenKey(key,subKey,0,winreg.KEY_SET_VALUE) as keyHandle:
winreg.DeleteValue(keyHandle,itemName)
except OSError as err:
print("error: ",repr(err))
pass
if __name__ == "__main__":
AddForbidUpdateRegKeyValue(winreg.HKEY_LOCAL_MACHINE,
"SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU",
"AUOptions",winreg.REG_DWORD,2)
AddForbidUpdateRegKeyValue(winreg.HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
"NoWindowsUpdate",winreg.REG_DWORD,1)
图1:

本文介绍使用Python的winreg模块修改Windows注册表,实现禁用Windows10自动更新的功能。通过具体代码示例,展示了如何创建注册表项、设置键值对以及删除值。适用于需要管理员权限的场景。
1151

被折叠的 条评论
为什么被折叠?



