我正在调试我的应用程序,它在Visual Studio 2010中具有拖放功能。我必须以特权模式运行IDE,因为我的某些项目需要这样做。
我的问题:
我可以在正常运行.exe文件时拖放(从Windows资源管理器(WE)运行),但在VS2010中进行调试时,我无法在我的应用程序和WE之间进行拖放。
我试图以特权模式打开WE,但仍然无法调试。
你有同样的问题吗?如果你这样做,你有任何解决方法吗?请分享。
答案 0 :(得分:6)
另一种解决方法是从Windows资源管理器运行调试二进制文件,并通过“工具”或“调试”菜单从Visual Studio中附加到该进程。我已经验证了在使用这种方法时在调试器中收到拖动事件。
答案 1 :(得分:5)
这是设计的,UAC的一个方面称为UIPI(用户界面权限隔离)。它可以防止非提升的进程通过Windows消息或拖放来劫持提升的进程。它可以防止破坏攻击。升级过程有一种方法可以使用ChangeWindowMessageFilter显式地允许消息。但不是拖放,它不是基于消息的。
没有像样的api级解决方法,必须以声明方式完成。该程序的清单需要使用uiaccess = true
,使用来自批准的授权机构的证书进行代码签名,并安装在c:\ windows或c:\ program files中。