windows 注册表详解以及使用 Python操作注册表

1 Windows注册表

很多程序将配置保存在注册表中方便读取。

注册表是一个树状结构,每一个节点可以有子节点,并且每个节点可以有自己的值。这些值就是程序保存在注册表中的配置信息,值有名词、类型和数值三个属性。

1.1 值类型

其中类型表示保存值的类型,常见的类型有:

类型 说明
REG_BINARY 二进制数据
REG_DWORD 32位数字
REG_DWORD_LITTLE_ENDIAN 小端格式的 32位数字,等价于 REG_DWORD
REG_DWORD_BIG_ENDIAN 大端格式的 32位数字
REG_QWORD 64位数字
REG_QWORD_LITTLE_ENDIAN 小端格式的 64位数字,等价于 REG_QWORD
REG_SZ C语言字符串(以 \0 结尾)
REG_EXPAND_SZ C语言字符串(以 \0 结尾),可以在字符串中使用环境变量,比如 %temp%
REG_MULTI_SZ C语言字符串序列(注意不是数组),以两个 \0 结尾
REG_LINK Unicode 编码的符号链接
REG_NONE 未定义的类型

所有的字符串类型中都可以使用系统默认参数,系统默认参数以 % 开头,他们的作用分别是:

%1  表示程序操作的文件
%2  表示系统默认的打印机
%3  表示资料扇区
%4  表示操作的Port端口
"%v"  程序操作的路径

1.2 目录结构

HKEY_LOCAL_MACHINE 主键是此计算机上的所有用户共享的注册表键值,而 HKEY_CURRENT_USER 是当前用户使用的注册表键值。而我们在注册表的 HKEY_CLASSES_ROOT 中也可以看到跟HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 中一样的文件关联项,是因为 HKEY_CLASSES_ROOTHKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes 合并之后的一个视图,其中用户键值会覆盖此计算机上的相同键值。因此我们不能直接修改 HKEY_CLASSES_ROOT 中的值,而是要在 HKEY_CURRENT_USER\Software\Classes 或者 HKEY_CURRENT_USER\Software\Classes 中修改,通常建议在 HKEY_CURRENT_USER 下修改,因为这样不需要管理员权限。

2 python操作注册表

警告:如果你不知道注册表中的项是干什么的,千万不要随便修改和删除已经存在的注册表项,否则可能导致系统崩溃!!

winreg是 python自带的模块,可以通过 winreg对注册表的值进行添加、删除和修改操作。

在继续了解 winreg的用法之前我们需要了解一些概念的对应关系,winreg中用 key来表示注册表中的项。key可以是一个路径,当 key是一个路径时 key所表示的就是路径的最后一个项,比如 HKEY_CURRENT_USER\Software\Classes 表示的就是 HKEY_CURRENT_USERSoftware 下的

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值