【问题标题】:Drag Drop using SendMessage使用 SendMessage 拖放
【发布时间】:2011-01-05 10:59:42
【问题描述】:

这听起来很有趣..只是一个小实验。
我想使用发送消息在应用程序/窗口上模拟文件的拖放。 有可能吗?

我没有应用程序的代码,但在可执行文件上。

应用程序是IP Messenger

我想要做的是使用“发送到”功能将文件发送到 .exe,这将
找到 IPMessenger 窗口并通过代码模拟拖放。

用户将选择文件并右键单击“发送到”到将从代码中拖放的 .exe。

**注意:IP Messenger 支持文件的拖放操作

谢谢
阿米特

【问题讨论】:

    标签: c# c++ winapi drag-and-drop sendmessage


    【解决方案1】:

    WM_DROPFILES Message。我猜你可以使用CreateToolhelp32Snapshot 来定位IP Messenger 的窗口,然后构建DROPFILES 结构来发送WM_DROPFILES 消息。

    最后一个链接是 Codeproject,在创建 DROPFILES 结构方面有一些帮助:How to Implement Drag and Drop Between Your Program and Explorer


    您可以使用FindWindow 函数,而不是使用CreatToolhelp32Snapshot。在这里,您将直接获得 IP Messenger 的 HWND,而不是 CTh32S,后者只会找到进程的 HANDLE

    完成后,您将创建DROPFILES 结构。阅读“启动拖放”部分中 CodeProject 链接上的 cmets,了解更多信息。

    最后你用 sendmessage 发送它

    SendMessage(ipMessHWND, WM_DROPFILES, (HDROP)&myDropFiles, 0);
    

    【讨论】:

    • 就是我要找的东西。看起来很复杂。谢谢 :)
    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2012-01-30
    • 2011-08-05
    • 2012-05-31
    • 2012-01-14
    • 2018-08-21
    相关资源
    最近更新 更多