首页
社区
课程
招聘
[旧帖] SendMessage窗口函数中能判断上一级的线程吗? 0.00雪花
发表于: 2013-10-11 15:50 8671

[旧帖] SendMessage窗口函数中能判断上一级的线程吗? 0.00雪花

2013-10-11 15:50
8671
貌似标题有点难懂

CreateThread A                                       
ThreadA里面 SetTlsValue aaa然后 SendMessage(HWND)     在HWND 的窗口函数中ThsGetvalue 得不到aaa

原因是
主线程是个窗口线程,在另外一个工作线程中调用了窗口线程的SendMessage
1.工作线程挂起 Tls没问题 SetTlsValue aaa
2.切换到窗口线程,执行对应的消息处理 Tls有问题,这里变为窗口线程的Tls了
3.切换回工作线程 Tls没问题

我要在窗口过程中获得aaa,有没有好的办法或者解决方案?

也就是窗口过程中能否判断 上级线程是哪个thread?
主要是还有其他的线程可能也调用了这个窗口过程。导致错误

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
tls 本来就是线程本地存储。本来就不能传过去啊。 你要向另外一个线程发消息。 那么就可以在消息里面带上对应的指针。

LRESULT SendMessage(          HWND hWnd,
    UINT Msg,
    WPARAM wParam,
    LPARAM lParam
);

里面可以带上相应的参数的。
2013-10-11 15:55
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
3
在线等,求助~
先谢谢了
2013-10-11 16:03
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
4
我这个其实相当于有HOOK的意思,
所以HWND MSG LPARAM和WPARAM 都是不能改的。
2013-10-11 16:04
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
5
是SendMessage又调用了 recv.我要在recv里面判断是否是我的线程A,调用进来的,如果修改了wparam和lparam hwnd msg 都会导致到不了recv 这里
2013-10-11 16:05
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个不能实现吧,也许我水平不高,当时我也是没有找到方法,才放弃了!
2013-10-11 20:11
0
雪    币: 1392
活跃值: (4867)
能力值: ( LV13,RANK:240 )
在线值:
发帖
回帖
粉丝
7
不知道有没有好的替代的方法,各位透露一下啊~
2013-10-11 20:44
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
唉,俺也是不知道!
2013-10-11 21:18
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
只能修改lppara 了 不能真心不知道如何
2013-10-23 09:08
0
雪    币: 91
活跃值: (57)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
1楼说的是正确的方法,是Lz没有理解对意思罢了。在参数上做文章可能是唯一的方法了。

Lz觉得不能改的原因,我很难理解。

就算按Lz说的不能改wparam和lparam hwnd的值,那么如果它本来就带有aaa,那不能改这个限制不就取消了啊...
2013-10-24 04:37
0
游客
登录 | 注册 方可回帖
返回
//