我们需要创建一个程序..实际上我们被要求创建一个软件许可合规工具....我们如何检查机器内安装的软件..
是通过注册表吗...在搜索时我看到一篇文章说我们需要研究 HKLM 的“卸载”子项。
另外,我们是否还可以获得有关软件是否是免费软件、共享软件、从注册表获得许可的信息???
我们计划使用 Python 和 Mysql 来完成此操作
正如您已经提到的,(正确)安装的程序列表可以在注册表中的注册表项下找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
See here http://social.msdn.microsoft.com/Forums/en/csharplanguage/thread/be924d3d-f92f-4d51-bd74-a0d07cff0f5a例如或使用谷歌获取更多信息。使用看看这个键regedit
,结构id相当明显。
有关使用 python 访问注册表的信息,请参阅_winreg – Windows 注册表访问 http://docs.python.org/library/_winreg.html在 python 标准库文档中。
请注意,可能总是有一些软件没有出现在注册表中:有些软件仍然可以通过将其放入目录中来安装,你不会发现这些家伙......
对于第二部分,有no way通过查看注册表来了解许可证类型或许可状态(即正确许可)。没有标准方法来存储此信息。您能做的最好的事情就是编制尽可能多的程序列表(您必须手动执行此操作,即使对于 Office、Adobe 等标准程序,这也会很耗时)并存储所有必要的信息(即注册表中的 GUID 密钥、许可证类型等)在数据库中。
然后,您的工具可以将当前安装的程序列表与您的列表进行比较,可能会检查许可状态。作为第一步,这将更加困难,因为每个软件都有自己的(大部分是秘密的!)存储信息的方式 - 毕竟,如果这些信息是可访问的,那么它也可以被伪造。
然后,您的工具可以通知系统管理员其发现以及任何不在列表中的程序,他必须手动检查它们的许可。您可以提供一些组织帮助来管理此信息,甚至可以更新数据库以供将来使用。
HTH
Martin
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)