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处理json数据中的中文
Mar 06 Python
Python中用Descriptor实现类级属性(Property)详解
Sep 18 Python
python中while循环语句用法简单实例
May 07 Python
Python编程argparse入门浅析
Feb 07 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
Jun 20 Python
Python WEB应用部署的实现方法
Jan 02 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
如何更优雅地写python代码
Jul 02 Python
python判断无向图环是否存在的示例
Nov 22 Python
matplotlib部件之套索Lasso的使用
Feb 24 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
关于手调机和数调机的选择
2021/03/02 无线电
php反弹shell实现代码
2009/04/22 PHP
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
jQuery初学:find()方法及children方法的区别分析
2011/01/31 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
2014/10/10 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
layerUI下的绑定事件实例代码
2018/08/17 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
Python3解释器知识点总结
2019/02/19 Python
解决Python中pandas读取*.csv文件出现编码问题
2019/07/12 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python使用配置文件过程详解
2019/12/28 Python
python能开发游戏吗
2020/06/11 Python
python中rb含义理解
2020/06/18 Python
解决pip install psycopg2出错问题
2020/07/09 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
初中军训感想
2015/08/07 职场文书
SQL写法--行行比较
2021/08/23 SQL Server