我开发一个C ++程序,它可能会使用的Adobe Flash,虽然它不是必需的。
我用CoCreateInstance创建Flash对象,如果失败,我知道未安装Flash,所以我不使用它。
然而,在Vista(我认为Windows 7的为好),未安装闪光灯时,退出该应用程序后,“程序兼容性助手”会弹出一个消息,说“此程序需要丢失的Windows组件”中指定的闪光灯。 OCX。
有没有一种方法,以防止出现此消息? 我不想强迫任何用户安装Flash(尤其是因为它是IE的ActiveX,而Firefox用户可能没有安装它),我的应用程序可以不使用闪光灯运作良好。
加上此消息时,它会在每次运行后,真的很烦。
我的意思并不是当然,用户的计算机上禁用PCA的,但是编程方式禁用在所有机器上这个特定的外观。
有什么想法吗?
谢谢
[编辑:]
我跟着吉文的铅(感谢),并做一些我自己的更多的挖掘。 我添加下面的XML应用程序的清单:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
(参见: msdn.microsoft.com/en-us/library/bb756929.aspx )
这解决了在Vista 64的问题。
为了解决在Windows 7同样的问题,我增加了以下内容:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
(参见: blogs.msdn.com/yvesdolc/archive/2009/09/22/the-new-compatibility-section-in-the-application-manifest.aspx )
解决了Windows 7操作系统。
但由于某些原因, 它仍然发生在Vista 32 ...
我也试过编辑这会导致问题的特定DLL的清单,但它没有任何效果。 只有可执行文件的清单本身的影响问题。
所以...... Vista的32?