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 字符串定义
Sep 25 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
使用python实现mqtt的发布和订阅
May 05 Python
python实现DEM数据的阴影生成的方法
Jul 23 Python
详解numpy.meshgrid()方法使用
Aug 01 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
python模拟实现分发扑克牌
Apr 22 Python
python的dict判断key是否存在的方法
Dec 09 Python
python单向链表实例详解
May 25 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 时间日期操作实战
2011/08/26 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
DISCUZ在win2003环境下 Unable to access ./include/common.inc.php in... 的问题终极解决方案
2011/11/21 PHP
基于Zend的Captcha机制的应用
2013/05/02 PHP
php指定长度分割字符串str_split函数用法示例
2017/01/30 PHP
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
2015/02/28 Javascript
javascript字符串函数汇总
2015/12/06 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
Python flask框架post接口调用示例
2019/07/03 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
Django 限制访问频率的思路详解
2019/12/24 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
90后毕业生的求职信范文
2013/09/21 职场文书
员工晚婚的请假条
2014/02/08 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
环保倡议书100字
2014/05/15 职场文书
安全教育的主题班会
2015/08/13 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP
golang操作rocketmq的示例代码
2022/04/06 Golang
VUE解决跨域问题Access to XMLHttpRequest at
2022/05/06 Vue.js
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python