UAC提升不允许拖放

我有一个.net应用程序,我需要通过访问一些低级别的win API来提升管理员权限。 我在应用程序清单中使用requestedExecutionLevel设置为requireAdministrator。

该应用程序还需要从Windows资源管理器接收拖放请求。 我已经尝试在清单中将uiAccess设置为true并遵守其他要求,例如应用程序的authenticode签名,安装在限制位置(程序文件)等。应用程序运行正常,没有任何错误(在vista,win 7),用户获取UAC提示提升。

但仍然无法接受拖放请求。

较低权限的进程无法在Vista及更高版本上拖放到更高权限的进程。

最重要的是,如果您的应用程序被提升,从Windows资源管理器拖放将无法正常工作。

http://blogs.msdn.com/b/patricka/archive/2010/01/28/q-why-doesn-t-drag-and-drop-work-when-my-application-is-running-elevated-一个强制完整性控制和-uipi.aspx

我在这里描述了如何使用UAC和UIPI进行拖放操作:

如何在Vista / Windows 7上为高架MFC应用程序启用拖放function