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的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
Python下的subprocess模块的入门指引
Apr 16 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
Feb 17 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
java中两个byte数组实现合并的示例
May 09 Python
Python读取txt某几列绘图的方法
Oct 14 Python
PyQt5 多窗口连接实例
Jun 19 Python
解决Python图形界面中设置尺寸的问题
Mar 05 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
Apr 27 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
python如何构建mock接口服务
Jan 28 Python
如何用Django处理gzip数据流
Jan 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
ucenter通信原理分析
2015/01/09 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
PHP实现事件机制的方法
2015/07/10 PHP
深入理解PHP中mt_rand()随机数的安全
2017/10/12 PHP
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
Vue加载json文件的方法简单示例
2019/01/28 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
python发送伪造的arp请求
2014/01/09 Python
Python中的类学习笔记
2014/09/23 Python
Python脚本处理空格的方法
2016/08/08 Python
利用Python画ROC曲线和AUC值计算
2016/09/19 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
python psutil模块使用方法解析
2019/08/01 Python
python绘制随机网络图形示例
2019/11/21 Python
python如何把字符串类型list转换成list
2020/02/18 Python
python实现从ftp上下载文件的实例方法
2020/07/19 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
PHP面试题大全
2015/10/16 面试题
C#基础面试题
2016/10/17 面试题
实习教师自我鉴定
2013/12/09 职场文书
打架检讨书800字
2014/01/10 职场文书
学雷锋标语
2014/06/25 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
举起手来观后感
2015/06/09 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
Java 死锁解决方案
2022/05/11 Java/Android