当前位置: 首页 > news >正文

winreg查询Windows注册表的一些基本用法

        注册表是Windows操作系统中用于存储配置信息的数据库。它包含了关于系统硬件、已安装的应用程序、用户账户设置以及系统设置的信息。

        特别地,当我们需要某些软件的配置配息时,主要在HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE下的SoftWare内进行查询操作。

注册表根健

        win+r,输入regedit回车打开注册表编辑器后,可以发现,注册表内总共有5个文件夹,也被称作5个根健。

 

这五个根健的主要作用以及特点如下表所示

​根键名称​​缩写​​主要作用​​特点​
​HKEY_CLASSES_ROOT​HKCR存储文件类型关联、COM组件、快捷方式等信息。是 HKLM\Software\Classes 和 HKCU\Software\Classes 的合并视图。
​HKEY_CURRENT_USER​HKCU存储当前登录用户的个性化设置,如桌面、软件配置等。仅影响当前用户,不同用户的 HKCU 内容不同。
​HKEY_LOCAL_MACHINE​HKLM存储计算机硬件、系统级软件配置(如驱动、服务、全局设置)。影响所有用户,修改需管理员权限。
​HKEY_USERS​HKU存储所有用户配置的原始数据,包括 .DEFAULT(未登录时的默认设置)和其他用户 SID。包含 HKCU 的数据来源,但直接修改可能影响系统稳定性。
​HKEY_CURRENT_CONFIG​HKCC存储当前硬件配置文件(如显示器、打印机设置),通常指向 HKLM\SYSTEM\CurrentControlSet\Hardware Profiles是动态生成的,重启后可能变化,通常用于临时硬件配置。

 

winreg

        winreg是python的内置库,可以用来查询修改windows注册表。这里我们给出其内部所有函数的具体使用方法,并以查找和修改微信语言设置为例来进行说明。

首先,在代码编辑器中导入winreg,ctrl加鼠标单击winreg,即可跳转到winreg源代码中(vscode或pycharm支持)

跳转到winreg.pyi文件内后,其内部的所有函数如下:

         可以看到winreg只支持windows操作系统,只在sys.platform为win32时才可以导入所有的函数与变量进行使用。

OpenKey

        OpenKey函数是用来打开某个注册表项,也就是某个文件夹。

        具体的使用方法与我们平常使用的文件读写函数open一致,可以使用with语句(上下文管理器)来进行操作,当然也可以直接使用。但是需要注意的是,不使用with语句时一定要记得在代码的其他地方关闭该注册表项即再使用一次CloseKey函数。否则会产生资源泄露。

代码:

'''
winreg.OpenKey函数参数详解:
key:主键,winreg内置变量,比如winreg.HKEY_CURRENT_USER,winreg.HKEY_CLASSES_ROOT等\n
sub_key:子键,当前主键下的某个文件夹,需要注意的是传入时要按照文件路径的格式传入,比如,"Software\Tencent\WeChat"\n
reserved:保留参数,默认为0,微软保留该参数以备未来扩展,当前所有版本的Windows均要求此值为0。\n
access:指定对注册表键的访问权限​​,控制后续操作(如读取、写入、删除等)。与open语句中的mode类似\n
'''
import winreg
sub_key=r"Software\Tencent\WeChat"
key=winreg.OpenKey(key=winreg.HKEY_CURRENT_USER,sub_key=sub_key,access=winreg.KEY_READ)
winreg.CloseKey(key)

参数详解:

相关文章:

  • 【Linux网络】————HTTP协议详解
  • 运算放大器相关的电路
  • Maven 项目中将本地依赖库打包到最终的 JAR 中
  • 【AI】mcp server是什么玩意儿
  • Python, FastAPI 与 RESTful API:构建高效 Web 服务的指南
  • SQLite 数据库常见问题及解决方法
  • 小结: Port Security,DHCP Snooping,IPSG,DAI,
  • 《汽车软件升级通用技术要求》 GB 44496-2024——解读
  • RN 鸿蒙混合开发实践(踩坑)
  • 每日Prompt:超现实交互场景
  • 动态网站 LNMP
  • 基于LNMP架构的个人博客系统部署
  • 详解RabbitMQ工作模式之通配符模式
  • laravel 中使用的pdf 扩展包 laravel-snappy(已解决中文乱码)
  • 从零搭建AI工作站:Gemma3大模型本地部署+WebUI配置全套方案
  • 用 openssl 测试 tls 连接
  • C++23 views::slide (P2442R1) 深入解析
  • 奇次谐波和偶次谐波【EMC】
  • 扩展:React 项目执行 yarn eject 后的 scripts 目录结构详解
  • 数据结构与算法学习-JavaScript的Array.prototype.reduce()方法
  • 云南一男子持刀致邻居3死1重伤案二审开庭,未当庭宣判
  • 18世纪“精于剪切、复制、粘贴”的美国新闻界
  • 《单身情歌》制作人韩贤光去世,林志炫发文悼念
  • 郎朗也来了,在辰山植物园“轻松听古典”
  • 中国工程院院士、国医大师石学敏逝世
  • 韩国前国务总理韩德洙加入国民力量党