厉害了,Python也能操作注册表 | 您所在的位置:网站首页 › 注册表没权限删除不了 › 厉害了,Python也能操作注册表 |
前言 注册表这个东西大家可能都不是很熟悉,因为我们平时用到的少;但是它是Windows的核心,很多软件的启动和日志记录什么的都包含在里面,可以说它是一个大型的数据库也不为过,今天我们就来看看Python是如何操作注册表的吧。 一、注册表初次见面 进入系统注册表的方法多种多样,最常见的就是运行窗口输入命令“regedit”,即可进入注册表:
注册表中的几个菜单分别对应机器的根目录登陆的用户信息和本地机器信息以及用户信息和本地配置信息等。 二、认识操作注册表的模块 在Python中就有这么一个神奇的模块,它可以用来操作注册表。它就是-----"winreg",一个Python自带的操作注册表的模块。 三、导入 1.常量 ”winreg“总有很多有用的方法,基本上就是操作注册表中的键值,我们挑几个重要的来说说。首先我们来了解下”winreg“中的各个常量: 1).HKEY_ 常量 2).访问权限 3).64位的具体应用 4).值类型 四、注册表相关操作 1.连接远程计算机注册表 不过我们在这里要注意的是,如果远程注册表没有系统管理员权限,是无法正常访问注册表的。所以我们先要判断下它的访问权限。这里就要用到我们之前讲的"ctypes"模块中的判断用户是否是管理员用户的方法了。 2.关闭连接注册表 连接之后我们不想用了,就要随手把它给关闭了,也很简单,只要拿到打开注册表的句柄,就可以关闭了。 可以看到句柄的值不一样。 其实还有一种方法,就是利用注册处理对象的方法来关闭。 注册对象还支持上下文和分离处理对象周期: 3.打开注册表键 4.创建新的注册表键
5.删除注册表中指定的键
可以看到”cnm“已经被删除了。如果键不存在,删除会报错。 6.枚举注册表键 7.刷新注册表键 8.读取注册表 9.查找注册表键
10.保存注册表键 11.启用禁用注册表 12.反射状态是否禁用 13.在指定键上关联值
可以看出它们的区别,而且前者值类型只能指定为“winreg.REG_SZ”,而后者什么类型都可以。 14.寻找应用程序的位置并打开 前面我们介绍了"winreg"几乎所有的方法,现在我们就来具体做一个应用练练手,就拿我们的360安全卫士为例,我们尝试着通过注册表先找到它的位置然后打开它。那么接下来小编开始表演了: 1).定位360安全卫士的注册表项:1)).打开系统注册表编辑器,然后进行搜索关键字:
2)).定位到注册表路径
2).打开注册表键 通过我们找到的子键然后对其进行查找操作,得到处理对象的句柄“reg” 3).找到应用的绝对路径并打印 通过数值名称找到数值数据, 这样就找到了这个应用的绝对路径了,返回值是一个元祖,我们使用索引访问: 可以看到我们已经成功打印出了我们要找的应用程序的绝对路径了,接下来就可以愉快的打开它了。打开的方法多种多样,什么“os”,“subprocess”,"ctypes","pywin32",一大堆的方法,不过小编还是觉得“os”最方便。
最后别忘了关闭对象处理句柄哦。 四、总结 利用”winreg“可以完成很多骚操作,你也可以通过注册表设置系统开机启动项以及其它操作,如果你想往黑客方面发展的话。 往期推荐 太实用了!自己动手写软件——GUI编程 python也能玩视频剪辑!moviepy操作记录总结 太好用!图片转文字没有python环境也能运行了!!! 通过server酱实现定时推送天气情况,再不用担心你的糊涂蛋女友忘带伞了~~ 六十来行python代码完成一个文件分类器 媳妇儿喜欢玩某音中的动漫特效,那我就用python做一个图片转化软件。 |
CopyRight 2018-2019 实验室设备网 版权所有 |