Python操作注册表详细步骤介绍


Posted in Python onFebruary 05, 2020

Python操作注册表步骤之1.打开注册表

对注册表进行操作前,必须打开注册表。在Python中,可以使用以下两个函数:RegOpenKey和RegOpenKeyEx。其函数原型分别如下所示。

RegOpenKey(key, subKey , reserved , sam)RegOpenKeyEx
(key, subKey , reserved , sam)

两个函数的参数一样。参数含义如下:

key:必须为表10-1中列出的项。

subKey:要打开的子项。

reserved:必须为0。

sam:对打开的子项进行的操作,包括win32con.KEY_ALL_ACCESS、win32con.KEY_READ、win32con. KEY_WRITE等。

以下实例实现打开注册表“HKEY_CURRENT_USER\Software”项。

>>> import win32api # 导入win32api模块
>>> import win32con # 导入win32con模块# 使用RegOpenKey打开注册表项
>>> key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,
'Software',0,win32con.KEY_READ)
>>> print key # key为打开的项的句柄

Python操作注册表步骤之2.关闭注册表

打开的注册表,在操作完成后,需要关闭。在Python中使用RegCloseKey函数关闭打开的注册表项。其函数原型如下所示。

RegCloseKey(key)

其参数只有一个,其含义如下。

key:已经打开的注册表项。

以下实例关闭一个已经打开的注册表项。

# 关闭刚才打开的注册表项

>>> win32api.RegCloseKey(key)

>>> print key

Python操作注册表步骤之3.读取项值

在打开注册表项以后,可以使用RegQueryValue函数读取项的默认值。如果要读取某一项值,可以使用RegQueryValueEx函数。其函数原型分别如下所示。

RegQueryValue(key, subKey )RegQueryValueEx(key, valueName )

对于RegQueryValue,其参数含义如下。

key:已打开的注册表项的句柄。

subKey:要操作的子项。

对于RegQueryValueEx,其参数含义如下。

key:已经打开的注册表项的句柄。

valueName:要读取的项值名称。

以下实例实现对“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer”项的操作。

>>> import win32api 
>>> import win32con# 打开“HKEY_LOCAL_MACHINE\SOFTWARE
\Microsoft\Internet Explorer”项 
>>> key = win32api.RegOpenKey(win32con.HKEY_LOCAL_MACHINE,
'SOFTWARE\\Microsoft\\Internet Explorer',0, win32con.KEY_ALL_ACCESS) 
>>> win32api.RegQueryValue(key,'')  
# 读取项的默认值''  
# 输出为空,表示其默认值未设置#读取项值名称为Version的项值数据,
也就是Internet Explorer的版本 
>>> win32api.RegQueryValueEx(key,'Version') ('6.0.2900.2180', 1) 
>>> win32api.RegQueryInfoKey(key)  
# RegQueryInfoKey函数查询项的基本信息(26, 7, 128178812229687500L)  
# 返回项的子项数目、项值数目,以及最后一次修改时间

Python操作注册表步骤之4.设置项值

要修改或者重新设置注册表某一项的项值可以使用RegSetValueEx函数,如果要设置项的默认值可以使用RegSetValue函数。需要说明的是,对于RegSetValueEx,如果要设置的项值不存在,那么RegSetValueEx会添加该项值,如果存在,则修改该项值。其函数原型分别如下所示。

RegSetValueEx(key, valueName, reserved, type, value)RegSetValue
(key, subKey, type, value)

对于RegSetValueEx,其参数含义如下。

key:要设置的项的句柄。

valueName:要设置的项值名称。

reserved:保留,可以设为0。

type:项值的类型。

value:所要设置的值。

对于RegSetValue,其参数的含义如下。

key:已经打开的项的句柄。

subKey:所要设置的子项。

type:项值的类型,必须为win32con.REG_SZ。

value:项值数据,为字符串。

以下的实例实现修改“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer”的默认值,以及其“Version”项值数据。

# 将“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer”的默认值设为python
>>> win32api.RegSetValue(key,'',win32con.REG_SZ,'python')
# 将其“Version”设置为7.0.2900.2180
>>> win32api.RegSetValueEx(key,'Version',0,win32con.REG_SZ,'7.0.2900.2180')

Python操作注册表步骤之5.添加、删除项

要向注册表中添加项可以使用RegCreateKey函数。RegDeleteKey函数可以删除注册表中的项。其参数原型分别如下所示。

RegCreateKey(key, subKey )RegDeleteKey (key, subKey )

其参数含义相同,参数含义分别如下。

key:已经打开的注册表项的句柄。

subKey:所要操作(添加或删除)的子项。

以下的实例实现对“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer”项的添加、删除子项操作。

# 向“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet 
Explorer”添加子项“Python” 
>>> win32api.RegCreateKey(key,'Python')  
# 新创建的子项的句柄# 删除刚才创建的子项“Python” 
>>> win32api.RegDeleteKey(key,'Python')

以上就是我们为大家详细介绍的有关Python操作注册表的相关应用方法。

Python 相关文章推荐
Python 第一步 hello world
Sep 25 Python
Python的Tornado框架异步编程入门实例
Apr 24 Python
简单上手Python中装饰器的使用
Jul 12 Python
Python中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
django框架如何集成celery进行开发
May 24 Python
Python中optparser库用法实例详解
Jan 26 Python
python中dict使用方法详解
Jul 17 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
Python读写csv文件流程及异常解决
Oct 20 Python
python生成word合同的实例方法
Jan 12 Python
Python类继承和多态原理解析
Feb 05 #Python
Python模块 _winreg操作注册表
Feb 05 #Python
python3操作注册表的方法(Url protocol)
Feb 05 #Python
Python tkinter模版代码实例
Feb 05 #Python
Python Scrapy框架第一个入门程序示例
Feb 05 #Python
python lambda函数及三个常用的高阶函数
Feb 05 #Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 #Python
You might like
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
ThinkPHP让分页保持搜索状态的方法
2014/07/02 PHP
摘自启点的main.js
2008/04/20 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
JavaScript 学习笔记(六)
2009/12/31 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
2017/03/07 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
python实现公司年会抽奖程序
2019/01/22 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python线程池如何使用
2020/05/28 Python
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
公司人力资源的自我评价
2014/01/02 职场文书
运动会入场词60字
2014/02/15 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server