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实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
Python中json格式数据的编码与解码方法详解
Jul 01 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
python 中split 和 strip的实例详解
Jul 12 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
python实现批量按比例缩放图片效果
Mar 30 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python实现自动解数独小程序
Jan 21 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Python3批量生成带logo的二维码方法
Jun 24 Python
python飞机大战pygame游戏背景设计详解
Dec 17 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+Html+缓存
2006/12/20 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
webpack打包js的方法
2018/03/12 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
Python动态赋值的陷阱知识点总结
2019/03/17 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
sklearn中的交叉验证的实现(Cross-Validation)
2021/02/22 Python
物流专业毕业生推荐信范文
2013/11/18 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
营销计划书
2015/01/17 职场文书
司考复习计划
2015/01/19 职场文书
职称评定个人总结
2015/03/05 职场文书
教师节晚会主持词
2015/06/30 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
ES6 解构赋值的原理及运用
2021/05/25 Javascript
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技