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 相关文章推荐
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
Python多进程同步Lock、Semaphore、Event实例
Nov 21 Python
python验证码识别的实例详解
Sep 09 Python
python3中set(集合)的语法总结分享
Mar 24 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
Python3.7实现中控考勤机自动连接
Aug 28 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
在Python中等距取出一个数组其中n个数的实现方式
Nov 27 Python
python DataFrame转dict字典过程详解
Dec 26 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
python利用faker库批量生成测试数据
Oct 15 Python
Python使用Pygame绘制时钟
Nov 29 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函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
div失去焦点事件实现思路
2014/04/22 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
构建Vue大型应用的10个最佳实践(小结)
2019/11/07 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python通过future处理并发问题
2017/10/17 Python
Windows下安装Scrapy
2018/10/17 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
python和c语言哪个更适合初学者
2020/06/22 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
教导处工作制度
2014/01/18 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
个人培训自我鉴定
2014/03/28 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
英语教育专业毕业生求职信
2014/08/28 职场文书
环卫工人节活动总结
2014/08/29 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电