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判断IP地址合法性的方法实例
Mar 13 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
django文档学习之applications使用详解
Jan 29 Python
python format 格式化输出方法
Jul 16 Python
Python将8位的图片转为24位的图片实现方法
Oct 24 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
django数据库自动重连的方法实例
Jul 21 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
python for循环赋值问题
Jun 03 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中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
九种原生js动画效果
2015/11/11 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
php 解压zip压缩包内容到指定目录的实例
2018/01/23 Javascript
改变vue请求过来的数据中的某一项值的方法(详解)
2018/03/08 Javascript
使用webpack4编译并压缩ES6代码的方法示例
2019/04/24 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
利用aardio给python编写图形界面
2017/08/21 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python for 循环获取index索引的方法
2019/02/01 Python
Python实现SQL注入检测插件实例代码
2019/02/02 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
美国时尚在线:Showpo
2017/09/08 全球购物
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
物业客服专员岗位职责
2013/11/30 职场文书
软件毕业生个人鉴定
2014/03/03 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
节能标语大全
2014/06/21 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
委托书格式要求
2015/01/28 职场文书
家长对学校的意见和建议
2015/06/03 职场文书