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处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
在Python的循环体中使用else语句的方法
Mar 30 Python
分析Python编程时利用wxPython来支持多线程的方法
Apr 07 Python
详解Python中的日志模块logging
Jun 19 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
老生常谈python函数参数的区别(必看篇)
May 29 Python
读取本地json文件,解析json(实例讲解)
Dec 06 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
Python简易版停车管理系统
Aug 12 Python
浅谈pytorch torch.backends.cudnn设置作用
Feb 20 Python
Python分析最近大火的网剧《隐秘的角落》
Jul 02 Python
python操作链表的示例代码
Sep 27 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
使用ThinkPHP自带的Http类下载远程图片到本地的实现代码
2011/08/02 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
获取非最后一列td值并将title设为该值的方法
2013/10/30 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
微信小程序冒泡事件及其阻止方法实例分析
2018/12/06 Javascript
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
微信小程序中data-key属性之数据传输(经验总结)
2020/08/22 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
python实现图片筛选程序
2018/10/24 Python
Django上使用数据可视化利器Bokeh解析
2019/07/31 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Python实现不规则图形填充的思路
2020/02/02 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
化学专业自荐信
2014/05/28 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
指导教师推荐意见
2015/06/05 职场文书
python 使用Tensorflow训练BP神经网络实现鸢尾花分类
2021/05/12 Python
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL