Python 使用程序检查已安装软件的步骤

Python 使用程序检查已安装软件的步骤,python,registry,Python,Registry,我们需要创建一个程序..实际上我们被要求创建一个软件许可合规工具..我们如何检查机器内安装的软件。。 是通过注册表…在搜索时,我看到一篇帖子说我们需要查看HKLM的“卸载”子项 此外,我们是否也可以获得有关软件是否是免费软件、共享软件、是否从注册中心获得许可的信息 我们计划使用Python和Mysql来实现这一点,正如您已经提到的(正确安装的)程序列表可以在注册表中的键下找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

我们需要创建一个程序..实际上我们被要求创建一个软件许可合规工具..我们如何检查机器内安装的软件。。 是通过注册表…在搜索时,我看到一篇帖子说我们需要查看HKLM的“卸载”子项

此外,我们是否也可以获得有关软件是否是免费软件、共享软件、是否从注册中心获得许可的信息


我们计划使用Python和Mysql来实现这一点,正如您已经提到的(正确安装的)程序列表可以在注册表中的键下找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
请参阅示例或使用谷歌了解更多信息。使用
regedit
查看此键,结构id非常明显

有关使用python访问注册表的信息,请参见python标准库文档中的

请注意,可能总有一些软件没有显示在注册表中:有些软件仍然可以通过将其放在一个目录中来安装,您将无法捕获这些家伙

对于第二部分,无法通过查看注册表来判断许可类型或许可状态(即正确许可)。没有存储此信息的标准方法。您所能做的最好的事情是编译一个包含尽可能多的程序的列表(您必须手动完成此操作,即使对于Office、Adobe等标准程序也是很耗时的),并将所有必要的信息(即注册表中的GUID键、许可证类型等)存储在数据库中

然后,您的工具可以将当前安装的程序列表与您的列表进行比较,可能会检查许可状态。作为第一步,这将更加困难,因为每个软件都有自己的(大部分是秘密的!)存储方式——毕竟,如果这些信息可以访问,它也可能被伪造

然后,您的工具可以通知系统管理员它的发现和任何不在列表中的程序,他必须手动检查这些程序的许可。您可以为管理这些信息提供一些组织帮助,甚至可以更新数据库以备将来使用

Martin

您可以为windows使用一种功能强大的脚本语言,它在windows上具有非常好且易于使用的API