2011-03-03 59 views
0

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

此外,我们也得到有关S/W是免费的,共享软件,从注册表许可的信息?

我们计划在使用Python和MySQL

回答

1

正如你已经提到的(正确)安装的程序,可以在注册表中的关键

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 

发现列表中看到here例如做或使用谷歌进一步的信息。使用regedit来看看这个键,结构id很明显。

要使用python访问注册表,请参阅Python标准库文档中的_winreg – Windows registry access

注意,有可能永远是软件,犯规在注册表中显示出来:某些软件仍然可以通过只把它在一个目录中进行安装,你抓不住这些家伙......

对于第二部分,有没有办法告诉许可证类型或许可证状态(即正确许可)看注册表。没有标准的方式来存储这些信息。你可以做的最好的办法是尽可能多地编译一个尽可能多的程序清单(你必须手工完成,即使对于Office,Adobe等标准程序也是很耗时的)并且存储所有必要的信息(即注册表中的GUID键,许可证类型等)。

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

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

HTH

马丁

0

可以使用AutoIt一个功能强大的脚本语言的Windows具有非常好,简单的在Windows上使用API​​。

相关问题