查看: 3726|回复: 8

[已经解决] API:如何向窗口发送拖拽的消息

[复制链接]

八云紫的式神<

梦石
0
星屑
833
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2010-7-23 12:42:42 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
模拟把 FilePath 那个文件拖到句柄为Hwnd的窗口中

Hwnd = 123456 #窗口句柄
FilePath = "d:\\测试.txt" #文件路径
WM_DROPFILES = 0x0233
SendMessage = Win32API.new("user32","FindWindowW","lll","l")
SendMessage.call(HWnd, WM_DROPFILES, 这里应该填什么)

另外,需要第四个参数吗
梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
回帖
1296
发表于 2010-7-23 13:03:03 | 显示全部楼层
:funk:不会吧,为什么我记得只要两个...
好歹当年也当过大魔王过,orz
回复

使用道具 举报

梦石
0
星屑
50
在线时间
238 小时
注册时间
2006-10-2
回帖
372
发表于 2010-7-23 13:04:52 | 显示全部楼层
需要窗口样式里有acceptfile属性,才能响应这个消息吧
山寨产品龟速制作中……
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
833
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2010-7-23 17:23:08 | 显示全部楼层
需要窗口样式里有acceptfile属性,才能响应这个消息吧
猫哥哥 发表于 2010-7-23 13:04


目标窗口是BitComet的主程序,不知道有没有这个属性。。。不过确认支持拖放
回复

使用道具 举报

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
回帖
1260

贵宾

发表于 2010-7-23 19:41:39 | 显示全部楼层
{:nm_7:}貌似wParam是个内存地址.
而且这地址用RUBY获取起来蛮麻烦的= =!
-.-
回复

使用道具 举报

炎发灼眼的讨伐

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
回帖
894
发表于 2010-7-23 20:11:37 | 显示全部楼层
WM_DROPFILES
第三个参数是HDROP
第四个参数0

不过问题很多><
HDROP是系统内部生成的一个句柄 其实应用程序没有接口生成HDROP。~

不过可以参考:
那么CF_HDROP具体是什么呢?它是一个DROPFILES结构体。另外有一个HDROP类型,它是一个DROPFILES结构体的指针。

DROPFILES并不复杂。它的定义如下:

struct DROPFILES
{
    DWORD pFiles;    // offset of file list
    POINT pt;        // drop point (client coords)
    BOOL fNC;        // is it on NonClient area and pt is in screen coords
    BOOL fWide;      // wide character flag
};

其中文件名列表不在结构体的定义中。它是以双null结尾的字符串列表。可是它存放在哪里呢?它紧接着fWide字段存放,pFiles保存它在内存中的位移量(相对于结构体的起始位置)。另外只有fWide在拖拽中使用,它表示文件名是ANSI还是Unicode字符。


~~

另外SendMessage的HDROP这个地址是你进程中的~~ 要写到目标进程><
RMXP&amp;RMVX通用Web化完成- -|||
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2010-7-23 20:21:03 | 显示全部楼层
本帖最后由 紫苏 于 2010-7-23 20:28 编辑

SendMessage 是四个参数,2  楼说的两个参数可能是指 MFC 封装后的成员函数吧……

夏娜大人……|||

点评

= =向LS两位大人问好。  发表于 2010-7-23 20:36
紫苏大人- - 脉子好= =  发表于 2010-7-23 20:31
回复

使用道具 举报

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
回帖
1260

贵宾

发表于 2010-7-23 21:48:23 | 显示全部楼层
{:nm_7:}不知道为什么..消息是发出去了..
{:nm_7:}找了个文本文件试了一下,可是她没反应..

点评

也不知道该窗口有没有处理这个消息呢……||  发表于 2010-7-23 21:54
-.-
回复

使用道具 举报

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
回帖
1260

贵宾

发表于 2010-7-23 22:02:52 | 显示全部楼层
本帖最后由 神思 于 2010-7-24 06:51 编辑

{:nm_7:}其实是OK的了``发现我搞错一样东西ORZ......
因为我试过给RM的窗口发,结果是收的到的..
只是在给另一个窗口发的时候出现一点问题..{:nm_7:} 死纠结ORZ


Project17.rar (189.87 KB, 下载次数: 83)


{:nm_6:} 测试OK.

-v-具体看范例..
先打开test.txt然后运行RM.就会发现test.txt变成Game.ini的了

一不小心连贴了

评分

参与人数 1星屑 +700 收起 理由
zh99998 + 700 认可答案

查看全部评分

-.-
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部