Windows 拖放模拟?

更新时间:2024-04-26 下载TXT文档 下载Word文档

我有一个专有的应用程序,唯一的方法是从外部传递数据-从其他应用程序拖放(例如从Windows资源管理器中拖动文件)。 我的问题是,是否有可能模拟外部应用程序的拖放? 首选纯Win32解决方案,也可以包括MFC和WTL之类的依赖项。
帮帮我!

  • aloneguid:找到答案了吗? 我有完全一样的问题。 如果您发现任何问题,请通知我([email protected])
  • aloneguid:您找到答案了吗?

我认为这是可能的,但您可能需要为此使用COM(但我不确定-有WM_DROPFILES消息和一些相关功能,但我找不到用于删除数据的功能)。 请参阅MSDN上的这篇文章。

  • 可以使用SendMessage()将WM_DROPFILES(这是一条向后兼容的过时消息)从一个应用程序发送到另一个应用程序,但它仅适用于发送文件名,而没有其他功能。要拖放实际数据,您需要使用IDropTarget和IDataObject接口。但是,您无法使用它们模拟拖放操作。外部应用程序必须使用有效的IDropSource和IDataObject接口调用DoDragDrop(),然后由用户来完成拖放操作。 Windows IDropTarget接口不能直接访问。
  • 但是,应用程序可以使用OleSetClipboard()将IDataObject接口放置到剪贴板上。然后,Anotehr应用程序可以使用OleGetClipboard()恢复它。
  • @Remy,不幸的是,听起来他们没有访问"专有"应用程序的源。
  • 究竟。抱歉,误解了。没有专有应用程序的来源。它接受Windows资源管理器中的传入数据作为拖放文件操作,然后处理该文件中的数据,这是传递数据的所有已知方法。根据spy ++,应用程序不会收到任何有趣且与dnd相关的内容,只有WM_MOUSEMOVE,WM_NCHITTEST,WM_MOUSEUP。我打算探索COM接口,但是我根本不是COM专家:(

以上就是短码网小编为大家整理的《Windows 拖放模拟?》相关内容,希望大家喜欢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若内容造成侵权/违法违规/事实不符,请将联系本站反馈,一经查实,立即处理!

Windows 拖放模拟?》文档下载仅供参考学习,下载后请在24小时内删除。

转载注明出处:https://www.duanma.net/article/f6fff9fd298.html

回到顶部