Python之注册表增删改查(干货)
在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表。无所不能的python下如何完成这些操作呢?pywin32模块中提供了与微软提供的C++等语言API一致的使用python对注册表进行操作的接口。今天带给大家的是对注册表进行修改的代码(PS:想使用的孩纸直接复制拿走,亲测可用!)需要的孩纸们直接看代码:
1 import win32api, win32con 2 import sys 3 4 __author__ = 'Berlin' 5 6 def ModifyReg(key, keyPath, valueName, valueType, value): 7 try: 8 ''' 9 RegConnectRegistry: 10 computerName: string(If None, the local computer is used) 11 key: int(May be win32con.HKEY_LOCAL_MACHINE...) 12 ''' 13 keyHandle = win32api.RegConnectRegistry(None, key) 14 ''' 15 RegOpenKeyEx: 16 key: PyHKEY/int 17 subKey: string 18 reserved = 0: int(Reserved. Must be zero.) 19 sam = KEY_READ: int(If you want to set the value later, you must open the key with KEY_SET_VALUE) 20 ''' 21 subkeyHandle = win32api.RegOpenKeyEx(keyHandle, keyPath) 22 ''' 23 RegQueryValueEx: 24 key: PyHKEY/int 25 valueName: The name of the value to query 26 ''' 27 (currValue, type) = win32api.RegQueryValueEx(subkeyHandle, valueName) 28 if (currValue == value): 29 print 'PASS: Check reg value: %s' % valueName 30 return 1 31 else: 32 print 'INFO: The %s is not the same as %s' % (valueName, value) 33 print 'INFO: Try to set %s as %s' %(valueName, value) 34 subkeyHandle = win32api.RegOpenKeyEx(keyHandle, keyPath, 0, win32con.KEY_SET_VALUE) 35 ''' 36 RegSetValueEx: 37 key: PyHKEY/int 38 valueName: string(The name of the value to set) 39 reserved: any(Zero will always be passed to the API function) 40 type: int(REG_DWORD, REG_SZ ...) 41 value: registry data 42 ''' 43 win32api.RegSetValueEx(subkeyHandle, valueName, 0, valueType, value) 44 except: 45 print 'FAIL: ModifyReg %s. Exception happened. Exception happened when accessing registry key under %s.' % (valueName, keyPath) 46 return 0 47 print 'SUCCESS: ModifyReg %s value under %s' % (valueName, keyPath) 48 return 1 49 50 def main(): 51 key = win32con.HKEY_LOCAL_MACHINE 52 AUPath = r'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update' 53 valueName = r'AUOptions' 54 valueType = win32con.REG_DWORD 55 value = 1 56 ModifyReg(key, AUPath, valueName, valueType, value) 57 58 if __name__ == '__main__': 59 sys.exit(main())
实例是修改Windows自动更新的注册表项,将其修改为1.
感谢阅读,希望能帮到大家!
Published by Windows Live Writer!
作者:
薛定谔の喵
出处:
http://www.cnblogs.com/berlin-sun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述