使用SendMessage拖放

Ami*_*itd 7 c# c++ winapi drag-and-drop sendmessage

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

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

该应用程序是IP Messenger.

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

用户将选择该文件,然后右键单击"发送到".exe,它将从代码中拖放.

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

thx
amit

Def*_*ult 5

WM_DROPFILES消息。我想您可以用来CreateToolhelp32Snapshot定位 IP Messenger 窗口,然后构建与消息DROPFILES一起发送的结构WM_DROPFILES

最后的链接是 Codeproject,其中包含创建DROPFILES结构的一些帮助:How to Implement Drag and Drop Between Your Program and Explorer


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

完成此操作后,您将创建DROPFILES结构。请阅读“启动拖放”部分中 CodeProject 链接上的注释,了解有关操作方法的更多信息。

最后用 sendmessage 发送

SendMessage(ipMessHWND, WM_DROPFILES, (HDROP)&myDropFiles, 0);
Run Code Online (Sandbox Code Playgroud)