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实现的简单文件传输服务器和客户端
Apr 08 Python
Python json模块使用实例
Apr 11 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
关于Python如何避免循环导入问题详解
Sep 14 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
Dec 11 Python
利用python实现对web服务器的目录探测的方法
Feb 26 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
解决Python import .pyd 可能遇到路径的问题
Mar 04 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模板引擎SMARTY
2006/10/09 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php实现mysql封装类示例
2014/05/07 PHP
php图片添加水印例子
2016/07/20 PHP
PHP实现登陆表单提交CSRF及验证码
2017/01/24 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
jQuery中slideUp 和 slideDown 的点击事件
2015/02/26 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
深入理解js数组的sort排序
2016/05/28 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
微信小程序 实现点击添加移除class
2017/06/12 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
python实现在控制台输入密码不显示的方法
2015/07/02 Python
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
Farfetch中文官网:奢侈品牌时尚购物平台
2020/03/15 全球购物
外语系毕业生找工作的求职信
2013/11/28 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
单位介绍信格式
2015/01/31 职场文书
医学生自荐信范文
2015/03/05 职场文书
百年校庆感言
2015/08/01 职场文书
python文件与路径操作神器 pathlib
2022/04/01 Python
Redis Lua脚本实现ip限流示例
2022/07/15 Redis