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中使用lambda高效操作列表的教程
Apr 24 Python
Django中使用group_by的方法
May 26 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
Jan 26 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
python学生管理系统开发
Jan 30 Python
python利用Opencv实现人脸识别功能
Apr 25 Python
python实现计算器功能
Oct 31 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
Python timeit模块原理及使用方法
Oct 10 Python
使用Python解决图表与画布的间距问题
Apr 11 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递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
javascript 一个自定义长度的文本自动换行的函数
2007/08/19 Javascript
json的前台操作和后台操作实现代码
2012/01/20 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
js showModalDialog弹出窗口实例详解
2014/01/07 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
Javascript优化技巧之短路表达式详细介绍
2015/03/27 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
Node.js连接MongoDB数据库产生的问题
2017/02/08 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
jQuery中$原理实例分析
2018/08/13 jQuery
开发用到的js封装方法(20种)
2018/10/12 Javascript
解决vue无法侦听数组及对象属性的变化问题
2020/07/17 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
Python3实现连接SQLite数据库的方法
2014/08/23 Python
浅谈python配置与使用OpenCV踩的一些坑
2018/04/02 Python
python爬虫 线程池创建并获取文件代码实例
2019/09/28 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
jupyter notebook 重装教程
2020/04/16 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Python Http请求json解析库用法解析
2020/11/28 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
火锅店营销方案
2014/02/26 职场文书
新教师岗前培训方案
2014/06/05 职场文书
应届生求职自荐信
2014/07/04 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
上课不认真检讨书
2014/09/17 职场文书
新郎结婚保证书
2015/02/26 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
2016保送生自荐信范文
2016/01/29 职场文书