正如您已经提到的,可以在注册表中的注册表项下找到(正确)安装的程序列表。
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
例如,请参见此处,或使用google了解更多信息。使用一下该键regedit,结构id相当明显。
有关使用python访问注册表的信息,请参见_winreg – python标准库文档中的Windows注册表访问。
请注意,总是有某些软件未在注册表中显示:某些软件仍然可以通过将其放在目录中来安装,您不会被这些家伙所吸引…
对于第二部分,无法通过查看注册表来告知许可证类型或许可状态(即,已正确许可)。没有标准的方法来存储此信息。最好的办法是编译尽可能多的程序列表(您必须手工完成,即使对于Office,Adobe等标准程序也很费时),并存储所有必要的信息(例如,注册表中的GUID密钥,许可证类型等)。
然后,您的工具可以将当前安装的程序列表与列表进行比较,并可能检查许可状态。作为第一步,这将更加困难,因为每个软件都有它自己的(通常是秘密的!)存储方式-毕竟,如果此信息可访问,也可以伪造。
然后,您的工具可以将其发现和不在列表中的任何程序通知系统管理员,他将不得不手动检查许可。您可以提供一些组织上的帮助来管理此信息,甚至可以更新数据库以备将来使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)