如何在正常和&之间启用拖放功能UAC提升了权限应用程序

时间:2012-12-30 14:42:45

标签: delphi windows-7 drag-and-drop delphi-2010 uac

我已经阅读了this answer关于如何不能使用drag&使用UAC提升的应用程序从资源管理器中删除文件(通常在没有额外管理员权限的情况下运行)。

有人会认为将权限提升为EXE可以提供更多权限,但MS设法提供更少的权限并打破拖累和放弃权限。同时删除功能!

无论如何,虽然赞赏,Arnaud Bouchez先生给出的答案(禁用UIPI - 用户界面权限隔离)似乎有些 hackish 我的问题是:是否有推荐的方法以编程方式启用拖放功能放弃而不会弄乱用户的注册表

我正在考虑在清单或类似的东西中请求“拖放能力”。

注意:我主要在Windows 7上遇到此问题,但我认为这个问题与从Vista开始的所有Windows版本相关

1 个答案:

答案 0 :(得分:13)

您可以使用ChangeWindowMessageFilterEx更改特权应用程序窗口上的UIPI过滤器,以便接收文件拖放相关消息。 WM_DROPFILES是最明显的一个,WM_COPYDATA是另一个。还有一个未记录的消息:$0049,您会发现它有时被称为WM_COPYGLOBALDATA。事实上,我相信对最后一个的搜索将揭示与您的问题相关的一些代码示例。