使用SendMessage拖放

时间:2010-01-15 10:12:56

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

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

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

该应用程序为IP Messenger

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

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

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

THX
amit

1 个答案:

答案 0 :(得分:4)

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

完成此操作后,您将创建SendMessage(ipMessHWND, WM_DROPFILES, (HDROP)&myDropFiles, 0); 结构。阅读“启动拖放”部分中的CodeProject链接上的注释,了解更多信息。

最后你用sendmessage发送它

{{1}}