Tôi phát triển một chương trình C++ có thể sử dụng flash adobe, mặc dù không cần thiết.
Tôi sử dụng CoCreateInstance để tạo đối tượng flash và nếu nó không thành công, tôi biết flash không được cài đặt nên tôi không sử dụng nó.
Tuy nhiên, trong Vista (và tôi nghĩ Windows 7), khi flash không được cài đặt, sau khi rời ứng dụng, "Program Compatibility Assistant" bật lên thông báo rằng "Chương trình này yêu cầu thành phần Windows bị thiếu" chỉ định flash.ocx.
Có cách nào để ngăn thông báo này xuất hiện không? Tôi không muốn ép buộc bất kỳ người dùng nào cài đặt flash (đặc biệt vì nó là IE ActiveX và người dùng FireFox có thể chưa cài đặt) và ứng dụng của tôi có thể hoạt động tốt mà không cần đèn flash.
Thêm thông báo này thực sự gây phiền nhiễu khi nó xuất hiện sau mỗi lần chạy.
Tôi không có nghĩa là tất nhiên vô hiệu hóa PCA trên máy của người dùng, nhưng lại vô hiệu hóa giao diện cụ thể này trên tất cả các máy.Làm cách nào để ngăn chặn chương trình "Trợ lý tương thích chương trình" trong Vista (và Windows 7) xuất hiện?
Mọi suy nghĩ?
Cảm ơn
[EDIT:]
Tôi đi theo Shay của chì (nhờ), và đã làm một số đào hơn của riêng tôi. Tôi được thêm vào XML sau đây để biểu hiện của ứng dụng:
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false">
</requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
(xem thêm: msdn.microsoft.com/en-us/library/bb756929.aspx)
này giải quyết vấn đề trên Vista 64.
Để giải quyết cùng một vấn đề trên Windows 7, tôi được thêm vào sau :
<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>
(Xem thêm: blogs.msdn.com/yvesdolc/archive/2009/09/22/the-new-compatibility-section-in-the-application-manifest.aspx)
Giải Quyết Windows 7.
Nhưng đối với một số lý do, nó vẫn xảy ra trong Vista 32 ...
Tôi cũng đã cố gắng chỉnh sửa manifest của DLL cụ thể gây ra vấn đề, nhưng nó không có hiệu lực. Chỉ bản kê khai của tệp thực thi mới có thể ảnh hưởng đến vấn đề.
Vì vậy, ... Vista 32?
Cảm ơn bạn đã trả lời nhanh. Tôi đã đi theo hướng dẫn của bạn, nhưng vấn đề không được giải quyết hoàn toàn. Xem câu hỏi đã chỉnh sửa ở trên. – Asaf