打开注册表命令:regedit依次展开上述注册表路径,安装程序列表如下图:
获取系统安装程序列表:
获取安装程序属性信息(二次读取注册表):
通过注册表路径获取调用:
win32api 和 _winreg 的方法很类似,一般是多了一个前缀"Reg"使用方法很基本上一样,这里就不给具体的Demo代码了
就一般的应用来说,使用_winreg就足够了但是_winreg有一个问题,如果python安装紸册表是32位的并且是运行在64位的操作系统上时就会有一点小问题,由于操作系统会进行注册表的重定向32位的程序无法访问64位应用程序嘚注册表。在python安装注册表2.6以前这个问题都没有解决在python安装注册表2.7中通过补丁的形式修正了这个问题()。
通过例子来说明一下这个问题假設我们的操作系统是64位的,然后在上面安装了32位的python安装注册表看如下的python安装注册表代码:
上面的代码的执行不会像预想那样创建如下的鍵:
因为在64位的windows操作系统下,64位的程序和32位程序的注册表是分开的32位应用程序对注册表的操作(读、写)都会被重定向到Wow6432Node下面, 64位应用程序的访问注册表的行为则没有变化因此如果我们的32位应用程序确实要访问64位程序所用到的注册表的话,就会有点问题由于_winreg本身的问题,它对这种情况的支持不太充分对windows api的封装有一些bug,这个时候就需要用到 win32api 模块
下面用win32api提供的方法来修改上面的代码如下: