如何挂钩IDropTarget :: Drop

时间:2017-02-21 02:57:39

标签: windows

我正在寻找如何挂钩IDropTarget :: Drop函数的文档。 我想将我的dll作为插件添加到目标应用程序中,并挂钩IDropTarget :: Drop函数以获取删除的文件。是否有人已经完成了类似的实施?

1 个答案:

答案 0 :(得分:-1)

您可能必须接管注册表中的注册,以便Windows将激活您的自定义应用程序。然后,您必须生成真实的应用程序,并在调用CoRegisterClassObject后手动连接到实际应用程序并将其转发给它。这不是初学者COM的东西,只处理.exe的下降和启动其注册的文件类型。要处理应用程序窗口中的丢弃,您还可以在实际应用程序上调用CreateProcess的位置注入.dll。您还必须考虑应用程序可能正在使用旧WM_DROPFILES的事实。

这非常复杂,即使您可以完成所有工作,它仍然无法处理用户从开始菜单启动应用程序然后删除窗口上的文件的情况。要处理这种情况,您还必须在Image File Execution Options键中将自己注册为调试器,以便注入.dll。

在这一点上,我们远远处于“邪恶”领域。以这种方式超越其他应用程序是不可接受的。

您唯一真正的选择是询问原始作者是否可以为应用程序添加插件支持。