c# - 使用 SendMessage 拖放

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

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

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

申请是IP Messenger .

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

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

**注意:IP Messenger 支持对文件进行拖放操作

谢谢
阿米特

最佳答案

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 链接的评论,了解更多信息。

最后你用sendmessage发送它

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

关于c# - 使用 SendMessage 拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2070740/

相关文章:

c# - Roslyn - 查找所有符号

c++ - cmake opencv for contrib - 配置不完整,发生错误

c++ - 如何从 ip 地址或 sockaddr_in 结构(C++/WinAPI)获取主机名?

c# - handle 有什么用?指针

c# - 将命令行参数传递给 Visual Studio 容器工具中 .NET Core 控制台应用程序的 Docker 调试运行

带有sql连接器的C++无需请求太多数据即可获取元数据

c++ - QT - 顶部窗口

c# - 使用 C# 和 Win API 移动屏幕键盘 (osk.exe)

winapi - 以编程方式获取物理键盘布局

C# - Azure Durable Function - 重新启动编排