首页
社区
课程
招聘
[讨论]sendmessage与postMessage发送消息无效
发表于: 2013-8-3 23:11 9112

[讨论]sendmessage与postMessage发送消息无效

2013-8-3 23:11
9112
想用sendmessage或postMessage发送消息给第三方软件
CWnd *pWnd=CWnd::FindWindow(NULL,_T("OE-CAKE! - Untitled"));
::SendMessage(pWnd->GetSafeHwnd(),WM_COMMAND,1000,0);   //测试点击Water
::SendMessage(pWnd->GetSafeHwnd(),WM_COMMAND,1002,0);   //测试点击Wall按钮

通过Spy++查询1000与1002为对应的water按钮和Wall按钮标识.以上的代码能够发挥作用

而执行以下复选框的按钮确完全没有作用...
CWnd *pWnd=CWnd::FindWindow(NULL,_T("OE-CAKE! - Untitled"));
::SendMessage(pWnd->GetSafeHwnd(),WM_COMMAND,0x403,0);   //测试点击复选框按钮pouring
或
::SendMessage(pWnd->GetSafeHwnd(),WM_COMMAND,0x404,0x60a82);   //测试点击复选框按钮pouring




通过spy++查看..消息可以是一摸一样的..


是不是复选框的点击事件不能这么sendMessage???还有为何SPY++不能捕获到这个小游戏的快捷按键??? "w" "e" "," ". "   这些是一些快捷按钮...但是通过spy都无法捕捉到消息?

测试程序

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
基础很重要啊
2013-8-5 06:22
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
额,说实话,我是跳跃式学习的..本来是C#开发,然后对逆向有兴趣才学习...
请指点一二吧...
2013-8-5 09:56
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
先发送BM_SETCHECK,再发送WM_COMMAND试试
2013-8-5 16:05
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
	::SendMessage(h3,BM_SETCHECK,BST_CHECKED, 0);
	::SendMessage(h3,WM_COMMAND,0x404,0);


对控件发送BM_SETCHECK后,能够实现控件的选中,但它的功能没有实现?还是的模拟点击它的消息..
我用SPY++监控消息,它没有发送过BM_SETCHECK的消息?

是不是还有SPY++监控不到的消息??
2013-8-5 16:35
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哎,我真是笨...我一直想法传递WM_COMMAND的消息,经过MPL的提醒,我测试了下传递BM_CLICK的功能后,达到目的...
前期我传递WM_LBUTTONDOWN与WM_LBUTTONUP的消息,一点用没有.就没有测试BM_CLICK了..

还有为何SPY++不能捕获到这个小游戏的快捷按键??? "w" "e" "," ". "   这些是一些快捷按钮...但是通过spy都无法捕捉到消息?

接下来用这个继续测试子类化按钮的功能...
2013-8-5 16:58
0
雪    币: 175
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
你是捕获的窗体的消息吧,这样捕获不到那个复选框的消息的。
2013-8-5 17:39
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
感谢MPL的指点...
这回弄明白了..原来在SPY++中需要在消息选项中把 其他窗口的中对应的复选框选上,就能捕捉到所有消息了..

再次请教下,我在网上找了个CWINBUTTON的DLL,这个DLL可以把普通button设置为picture按钮.
操作代码简单,如下
CWINButton win1;  //为全局变量
HBITMAP bmp = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1));  //位图的资源
win1.GetItemhWnd(h1);  //h1为按钮句柄
win1.SetBackPic(bmp, TRUE);	


现在的问题是,
HWND hWnd=::FindWindow(NULL,L"OE-CAKE! - Untitled");
HWND h1=::FindWindowEx(hWnd,NULL, _T("Button"), _T("Water")); //如这里取得Water按钮的句柄


我通过下列代码取得h1的句柄后,通过win1这个类成员子类化h1时,无法成功把按钮变成图片按钮,按钮消失了,是不是LoadBitmap这个必须要加载OE-CAKE这个子类化程序的图片资源呢?
2013-8-6 16:40
0
雪    币: 216
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
顶一下,希望有好心人随手回复解决一下....
2013-8-7 15:27
0
游客
登录 | 注册 方可回帖
返回
//