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编写生成树状结构的文件目录的脚本的教程
May 04 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
PyQt5每天必学之像素图控件QPixmap
Apr 19 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
python在文本开头插入一行的实例
May 02 Python
基于数据归一化以及Python实现方式
Jul 11 Python
PyGame贪吃蛇的实现代码示例
Nov 21 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
python中p-value的实现方式
Dec 16 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
python xlsxwriter模块的使用
Dec 24 Python
如何使用PyCharm及常用配置详解
Jun 03 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
php 传值赋值与引用赋值的区别
2010/12/29 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
2014/04/09 PHP
php浏览历史记录的方法
2015/03/10 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP递归算法的简单实例
2019/02/28 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
微信小程序 教程之wxapp视图容器 swiper
2016/10/19 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
vue2.0实战之基础入门(1)
2017/03/27 Javascript
微信小程序页面传值实例分析
2017/04/19 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
node+koa实现数据mock接口的方法
2017/09/20 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
2019/09/16 Javascript
js实现固定区域内的不重叠随机圆
2019/10/24 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
详解Python中的条件判断语句
2015/05/14 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
中介公司区域经理岗位职责范本
2014/03/02 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
晚会主持词开场白
2014/03/17 职场文书
银行业务授权委托书
2014/10/10 职场文书
化工生产实习心得体会
2016/01/22 职场文书
springcloud之Feign超时问题的解决
2021/06/24 Java/Android