设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3364|回复: 8
打印 上一主题 下一主题

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

[复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
624
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

跳转到指定楼层
1
发表于 2010-7-23 12:42:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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

另外,需要第四个参数吗

Lv1.梦旅人

梦石
0
星屑
50
在线时间
270 小时
注册时间
2010-2-4
帖子
1305
2
发表于 2010-7-23 13:03:03 | 只看该作者
:funk:不会吧,为什么我记得只要两个...
好歹当年也当过大魔王过,orz
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
238 小时
注册时间
2006-10-2
帖子
417
3
发表于 2010-7-23 13:04:52 | 只看该作者
需要窗口样式里有acceptfile属性,才能响应这个消息吧
山寨产品龟速制作中……
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
624
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

4
 楼主| 发表于 2010-7-23 17:23:08 | 只看该作者
需要窗口样式里有acceptfile属性,才能响应这个消息吧
猫哥哥 发表于 2010-7-23 13:04


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

使用道具 举报

Lv1.梦旅人

彩色的银子

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

贵宾

5
发表于 2010-7-23 19:41:39 | 只看该作者
{:nm_7:}貌似wParam是个内存地址.
而且这地址用RUBY获取起来蛮麻烦的= =!
-.-
回复 支持 反对

使用道具 举报

Lv1.梦旅人

炎发灼眼的讨伐者

梦石
0
星屑
50
在线时间
1707 小时
注册时间
2007-8-4
帖子
904
6
发表于 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化完成- -|||
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
7
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

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

贵宾

8
发表于 2010-7-23 21:48:23 | 只看该作者
{:nm_7:}不知道为什么..消息是发出去了..
{:nm_7:}找了个文本文件试了一下,可是她没反应..

点评

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

使用道具 举报

Lv1.梦旅人

彩色的银子

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

贵宾

9
发表于 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 认可答案

查看全部评分

-.-
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-12 19:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表