10

我已经阅读了有关如何将资源管理器中的拖放文件(通常在没有额外管理员权限的情况下运行)与 UAC 提升的应用程序一起使用的答案。

有人会认为将权限提升到 EXE 会给予更多的权限,但 MS 设法给予更少的权限并同时破坏拖放功能!

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

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

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

4

1 回答 1

13

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

于 2012-12-30T15:34:00.370 回答