在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表。无所不能的python下如何完成这些操作呢?pywin32模块中提供了与微软提供的C++等语言API一致的使用python对注册表进行操作的接口。今天带给大家的是对注册表进行修改的代码(PS:想使用的孩纸直接复制拿走,亲测可用!)需要的孩纸们直接看代码:

 import win32api, win32con
import sys __author__ = 'Berlin' def ModifyReg(key, keyPath, valueName, valueType, value):
try:
'''
RegConnectRegistry:
computerName: string(If None, the local computer is used)
key: int(May be win32con.HKEY_LOCAL_MACHINE...)
'''
keyHandle = win32api.RegConnectRegistry(None, key)
'''
RegOpenKeyEx:
key: PyHKEY/int
subKey: string
reserved = 0: int(Reserved. Must be zero.)
sam = KEY_READ: int(If you want to set the value later, you must open the key with KEY_SET_VALUE)
'''
subkeyHandle = win32api.RegOpenKeyEx(keyHandle, keyPath)
'''
RegQueryValueEx:
key: PyHKEY/int
valueName: The name of the value to query
'''
(currValue, type) = win32api.RegQueryValueEx(subkeyHandle, valueName)
if (currValue == value):
print 'PASS: Check reg value: %s' % valueName
return 1
else:
print 'INFO: The %s is not the same as %s' % (valueName, value)
print 'INFO: Try to set %s as %s' %(valueName, value)
subkeyHandle = win32api.RegOpenKeyEx(keyHandle, keyPath, 0, win32con.KEY_SET_VALUE)
'''
RegSetValueEx:
key: PyHKEY/int
valueName: string(The name of the value to set)
reserved: any(Zero will always be passed to the API function)
type: int(REG_DWORD, REG_SZ ...)
value: registry data
'''
win32api.RegSetValueEx(subkeyHandle, valueName, 0, valueType, value)
except:
print 'FAIL: ModifyReg %s. Exception happened. Exception happened when accessing registry key under %s.' % (valueName, keyPath)
return 0
print 'SUCCESS: ModifyReg %s value under %s' % (valueName, keyPath)
return 1 def main():
key = win32con.HKEY_LOCAL_MACHINE
AUPath = r'SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update'
valueName = r'AUOptions'
valueType = win32con.REG_DWORD
value = 1
ModifyReg(key, AUPath, valueName, valueType, value) if __name__ == '__main__':
sys.exit(main())

实例是修改Windows自动更新的注册表项,将其修改为1.

感谢阅读,希望能帮到大家!

Published by Windows Live Writer!

Python之注册表增删改查(干货)的更多相关文章

  1. Django框架(八)--单表增删改查,在Python脚本中调用Django环境

    一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...

  2. Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境

    目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...

  3. Java Web项目案例之---登录注册和增删改查(jsp+servlet)

    登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...

  4. GZFramwork数据库层《四》单据主从表增删改查

    同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...

  5. GZFramwork数据库层《三》普通主从表增删改查

    运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...

  6. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

    运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...

  7. GZFramwork数据库层《一》普通表增删改查

    运行结果:     使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...

  8. vbs注册表增删改

    vbs注册表增删改非常简单.过去竟然能忍受那么多次手动在注册表编辑器操作...应该认真反思自己的懒惰了. Dim op Set op=WScript.CreateObject("WScrip ...

  9. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

随机推荐

  1. MapWindowsPoints函数使用

    MapWindowPoints的百度解释: 函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空 的一组点.   函数原型:int MapWindowPoints(HWND ...

  2. 基于 Azure IaaS 搭建企业官网的规划和实践

    本课程主要介绍了基于 Azure IaaS 搭建企业官网的案例分析和实践,实践讲解如何使用 Azure 门户创建虚拟机, 创建虚拟网络, 创建存储账户等. 具体包括项目背景介绍, 项目架构, 准备和实 ...

  3. 10个优秀的移动Web应用开发框架

    在最近几年里,移动互联网高速发展.市场潜力巨大.继计算机.互联网之后,移动互联网正掀起第三次信息技术革命的浪潮,新技术.新应用不断涌现.今天这篇文章向大家推荐10大优秀的移动Web开发框架,帮助开发者 ...

  4. C#背景图片自适应

    1.选中窗体修改属性 2.在load添加代码 private void Form1_Load(object sender, EventArgs e) { this.BackgroundImageLay ...

  5. 46.Maximum Product Subarray(最大乘积子数组)

    Level:   Medium 题目描述: Given an integer array nums, find the contiguous subarray within an array (con ...

  6. selenium-元素的定位

    前戏 元素的定位是自动化测试的核心,要想操作一个元素,首先应该识别这个元素.Webdriver 提供了一系列的元素定位方法,常用的有 id,name,class name,link text,part ...

  7. SniperOJ-leak-advanced-x86-64

    借助DynELF实现无libc的漏洞利用小结 1.leak-advance与leak的区别在于一个可用函数是write,一个可用函数是puts.write比puts更容易利用,虽然write需要的参数 ...

  8. Luogu P1782 旅行商的背包

    题目传送门 卡常背包果然名不虚传 算法主体就是两种背包分开跑,先跑多重背包,再跑奇货 不知道为什么,这题二进制拆分好像要比单调队列优化快一些 然后这题毒瘤的地方就出来了: 如果一件物品的体积\(\ti ...

  9. Memcache查看列出所有key方法

    Memcached查看列出所有key方法 测试的过程中,发现Memcached没有一个比较简单的方法可以直接象redis那样keys *列出所有的Session key,并根据key get对应的se ...

  10. shell脚本,计算学生分数的题目。

    1.计算学生平均分数的值是多少? 2.计算每门课都大于80分的学生姓名.3.计算每门课都小于90分的学生姓名.