这篇文章运用简单易懂的例子给大家介绍使用python如何操作注册表,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
,,,注册表是windows管理配置系统运行参数的一个核心数据库。在这个数据库里整合集成了全部系统和应用程序的初始化信息;其中包含了硬件设备的说明,相互关联的应用程序与文档文件,窗口显示方式,网络连接参数,甚至有关系到计算机安全的网络共享设置。
<强> 1。读取强>
读取用的方法是OpenKey方法:打开特定的关键
winreg.OpenKey (sub_key,关键res=0,山姆=KEY_READ)
例子:此例子是显示了本机网络配置的一些注册表项
进口winreg 关键=winreg.OpenKey (_winreg.HKEY_LOCAL_MACHINE r"系统\ \ CurrentControlSet \ Services \ Tcpip \参数接口\ {0 e184877 d910 - 4877 b 4 c2-04f487b6dbb7}“) #获取该键的所有键值,遍历枚举 试一试: 我=0 而1: # EnumValue方法用来枚举键值,EnumKey用来枚举子键 名称、值类型=_winreg.EnumValue(关键,我) 打印repr(名称)、价值类型 我+=1 除了WindowsError: 打印 #假如知道键名,也可以直接取的值 值类型=_winreg.QueryValueEx(键,“DhcpDefaultGateway") 打印“默认网关地址——“值,类型
<强> 2。创建修改注册表强>
创建关键:_winreg.CreateKey(关键,sub_key)
删除关键:_winreg.DeleteKey(关键,sub_key)
删除键值:_winreg.DeleteValue(键值)
给新建的重要赋值:_winreg.SetValue (sub_key,关键类型、价值)
例子:
# !/usr/bin/env python #=utf - 8编码 进口winreg 关键=winreg.OpenKey (_winreg.HKEY_CURRENT_USER r"微软软件\ \ Windows \ CurrentVersion \ Explorer") #删除键 _winreg。DeleteKey(键,“Advanced") #删除键值 _winreg。DeleteValue(键,“IconUnderline") #创建新的 newKey=_winreg.CreateKey(键,“MyNewkey") #给新创建的键添加键值 _winreg.SetValue (newKey,“ValueName" 0“ValueContent")
<强> 3。权限问题强>
写完的Python脚本必须用管理员权限运行,才能对注册表进行写操作。否则会报PermissionError异常
这个时候需要调用Windows的API,重新启动一遍程序runas管理员,将原来的程序退出。
代码也很简单
进口ctypes,系统 def is_admin (): 试一试: 返回ctypes.windll.shell32.IsUserAnAdmin () 除了: 返回假 如果is_admin (): #将要运行的代码加到这里 其他: 如果系统。version_info [0]==3: ctypes.windll.shell32。ShellExecuteW(没有,“runas" sys。可执行文件,__file__,没有,1) 其他:# python2.x ctypes.windll.shell32。ShellExecuteW(没有,u" runas" unicode (sys.executable), unicode (__file__)没有,1)
网上搜的都是python2的,自己写代码的时候总是搞不正确的包,
然后用
pip搜索winreg
结果是:
winreg-helpers(0.1.1) -辅助功能Windows注册表的读/写。
装这个包就可以了。
解决问题,每次在链接vpn后,发现浏览器就打不开了,需要手动去将其去掉。
现在只要执行一下以下这个脚本,就解决了问题:
进口winreg INTERNET_SETTINGS=winreg.OpenKey (winreg.HKEY_CURRENT_USER, " # 39;微软软件\ \ Windows \ CurrentVersion \网络设置,, 0,winreg.KEY_ALL_ACCESS) def set_key(名称,值): _,reg_type=winreg。QueryValueEx (INTERNET_SETTINGS名称) winreg。SetValueEx (INTERNET_SETTINGS、名称、0 reg_type值) set_key (& # 39; ProxyEnable& # 39;, 0) # set_key (& # 39; ProxyOverride& # 39; u # 39; *。local; & lt; local> & # 39;) #绕过代理为localhost # set_key (& # 39; ProxyServer& # 39; u # 39; X.X.X.X: 8080 & # 39;)
关于使用python如何操作注册表就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。