在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. rpm包的安装方法

    每次都记不住,这次必须整理一下!cd到你存放rpm文件包的目录rpm -ivh linuxqq-v1.0.2-beta1.i386.rpm安装时可能会遇到缺少包的错误.rpm -ivh --repla ...

  2. Invalid bound statement (not found): com.ros.dao.LogMapper.insert

    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ros.dao.LogMapp ...

  3. ios push Payload

    https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotifi ...

  4. Luogu P4609 [FJOI2016]建筑师&&CF 960G Bandit Blues

    考虑转化题意,我们发现其实就是找一个长度为\(n\)的全排列,使得这个排列有\(A\)个前缀最大值,\(B\)个后缀最大值,求方案数 我们考虑把最大值拎出来单独考虑,同时定义一些数的顺序排列为单调块( ...

  5. java导入Excel表格数据

    首先导入Excel数据需要几样东西 第一需要两个依赖包,这里直接是在pom注入依赖 <!--excel--> <dependency> <groupId>org.a ...

  6. 理解 React,但不理解 Redux,该如何通俗易懂的理解 Redux?(转)

    作者:Wang Namelos 链接:https://www.zhihu.com/question/41312576/answer/90782136来源:知乎 解答这个问题并不困难:唯一的要求是你熟悉 ...

  7. urllib2功能说明

    1.urlopen(url, data, timeout) 第一个参数url即为URL,第二个参数data是访问URL时要传送的数据,第三个timeout是设置超时时间. 第二三个参数是可以不传送的, ...

  8. Ueditor1.4.3上传视频IE下无法播放的问题

    一:百度编辑器插入视频后,自动生成一段代码: <video class="edui-upload-video vjs-default-skin video-js" contr ...

  9. C++ lvalue,prvalue,xvalue,glvalue和rvalue详解(from cppreference)

    General 每一个C++表达式(一个操作符和它的操作数,一个字面值,一个变量名等等)都代表着两个独立属性:类型+属性分类.在现代C++中 glvalue(泛左值) = lvalue (传统意义上的 ...

  10. C++系统学习之三:向量

    标准库类型vector 定义:vector表示对象的集合,其中所有对象的类型都相同. 访问方式:索引 头文件:<vector> 本质:类模板 NOTE: 模板本身不是类或函数,相反可以将模 ...