Desarrollo un programa en C++ que podría usar adobe flash, aunque no es esencial.
utilizo CoCreateInstance para crear el objeto flash, y si falla, sé flash no está instalado, así que no lo uso.
Sin embargo, en Vista (y creo que Windows 7 también), cuando el flash no está instalado, después de salir de la aplicación, el "Asistente para compatibilidad de programas" aparece un mensaje que dice que "Este programa requiere un componente de Windows que falta" especificando el flash.ocx
¿Hay alguna manera de evitar que aparezca este mensaje? No quiero obligar a ningún usuario a instalar flash (especialmente porque es el IE ActiveX, y los usuarios de FireFox pueden no tenerlo instalado), y mi aplicación puede funcionar bien sin flash.
Además este mensaje es realmente molesto cuando aparece después de cada ejecución.
No me refiero, por supuesto, a la desactivación de la PCA en la máquina del usuario, pero desactive por programación esta apariencia específica en todas las máquinas.¿Cómo evito que aparezca programáticamente el "Asistente de compatibilidad de programas" en Vista (y Windows 7)?
¿Alguna idea?
Gracias
[EDIT:]
que siguieron el ejemplo de Shay (gracias), e hicieron un poco más de excavación de la mía. He añadido el siguiente código XML de manifiesto de la aplicación:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
(véase también: msdn.microsoft.com/en-us/library/bb756929.aspx)
Esto resolvió el problema en Vista 64.
Para resolver el mismo problema en Windows 7, añadí la siguiente :
<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>
(Ver también: blogs.msdn.com/yvesdolc/archive/2009/09/22/the-new-compatibility-section-in-the-application-manifest.aspx)
Resuelto Windows 7.
Pero por alguna razón, todavía sucede en Vista 32 ...
También probé la edición del manifiesto de la DLL específico que causa el problema, pero no tuvo ningún efecto. Solo el manifiesto del ejecutable en sí mismo afectó el problema.
Así que ... Vista 32?
Gracias por la respuesta rápida. Seguí tu ejemplo, pero el problema no está completamente resuelto. Ver la pregunta editada arriba. – Asaf