在Win32 / C ++中获取已安装的Flash ActiveX的版本

时间:2010-05-23 18:36:38

标签: c++ winapi activex

这甚至可能吗?

我在我的应用程序中将Flash嵌入到IE框架中,并希望检查Flash及其安装的版本。

应用程序需要在没有管理员权限的情况下运行。

加分问题:我还可以检查IE设置中是否启用了ActiveX控件吗?

2 个答案:

答案 0 :(得分:1)

唯一想到的是检查相应* .dll或* .ocx文件的文件版本。在我的64位系统上,文件是

C:\Windows\SysWOW64\Macromed\Flash\Flash10b.ocx

您可能已经注意到,许多应用程序可以列出所有已安装的ActiveX控件。因此,绝对可以以编程方式获取文件名。一旦你有了,你就可以获得文件版本。

希望其他人能尽快给你一个更开明的答案。

<强>更新

现在我考虑一下,注册表中每个控件都有一个键。

答案 1 :(得分:1)

解决方案是在"{D27CDB6E-AE6D-11cf-96B8-444553540000}"下的注册表中搜索Flash的CLSID(HKEY_CLASSES_ROOT\CLSID)。

在那里,您可以阅读\InprocServer32,它会为您提供OCX。然后通过GetFileVersionInfo获取版本。

这适用于任何COM控件。