Reputation: 5413
Is this even possible?
I'm embedding Flash inside an IE frame in my application and would like to check if Flash and what version of it is installed.
The application needs to run without admin privileges.
Bonus question: Can I also check if ActiveX controls are enabled in the IE settings?
Upvotes: 1
Views: 1338
Reputation: 5413
The solution is to search for the CLSID of Flash ("{D27CDB6E-AE6D-11cf-96B8-444553540000}"
) in the registry under HKEY_CLASSES_ROOT\CLSID
.
There you can read \InprocServer32
which gives you the OCX. Then get the version via GetFileVersionInfo
.
This should work for any COM control.
Upvotes: 1
Reputation: 109002
The only thing that comes to mind is to examine the file version of the corresponding *.dll or *.ocx file. On my 64-bit system, the file is
C:\Windows\SysWOW64\Macromed\Flash\Flash10b.ocx
As you probably are aware of, many applications can list all installed ActiveX controls. So it is definitely possible to obtain the file name programmatically. And once you have, you can just get the file version.
Hopefully someone else can give you a slightly more enlightened answer soon.
Update
Now that I think about it, there is one key per control in the registry.
Upvotes: 1