首页
社区
课程
招聘
[原创] 给 PC WX 加个按钮
发表于: 2020-4-18 18:49 11936

[原创] 给 PC WX 加个按钮

2020-4-18 18:49
11936

作者:御风

日期:2020年4月18日

描述:此方法可快速在微信界面上添加按钮,非 Duilib

版本:不限

DLL 注入的方式可以保证插件与 Wechat.exe 为同一进程,也无需为多开管理烦恼

具体的 DLL 注入方法这里不多讲了,教程很多

DLL 注入成功后,创建插件功能窗口

窗口创建后先隐藏,任务栏不可视,无边框风格

然后循环调用 GetModuleHandle("WechatWin.dll") 检测 WechatWin.dll 是否已加载成功,可以设置一个超时时间

当检测到 WechatWin.dll 加载完成后,可以 Hook 登录成功的事件

在登录成功的时候,等待微信聊天界面(“微信”, “WeChatMainWndForPC”)

可以根据自身进程 pid 去获取自身窗口句柄,保证窗口句柄不会取错

当微信聊天界面加载完成后:

1、对微信聊天界面窗口 SetWindowLong 接管消息

2、调用 SetParent 把插件功能窗口嵌入到微信聊天界面窗口

SetWindowLong 可以监听到微信聊天界面窗口的点击事件,我们只需要判断一下坐标:

当监听到 WM_LBUTTONDOWN 消息时,就可以根据点击坐标得到点击的导航按钮索引

当监听到 WM_SIZE 消息时,更改插件窗口大小

如果你有闲心,可以在微信聊天界面窗口的重绘窗口消息中用 GDI 绘制按钮,再根据鼠标移动消息加上热点效果

像我这么懒的,选择再嵌入一个按钮窗口:

这个按钮窗口上,放一个图片控件,用来展示鼠标点击和热点效果

窗口结构如下:

 

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
最新回复 (10)
雪    币: 291
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
学习了
2020-4-18 18:55
0
雪    币: 441
活跃值: (1060)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
来点码啊
2020-4-19 19:21
0
雪    币: 342
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
  小白一个 不怎么懂  但是楼主还是牛X的  
2020-4-23 13:53
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习,牛人!!
2020-5-4 00:52
0
雪    币: 3363
活跃值: (602)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
厉害学习了。
2020-5-13 22:11
0
雪    币: 234
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
先看了, 牛人!!!
2020-5-14 16:53
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
厉害!
2020-6-8 18:44
0
雪    币: 73
活跃值: (923)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
思路很骚啊。
2020-6-11 09:58
0
雪    币: 193
活跃值: (308)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
厉害,有代码么?
2020-9-7 20:37
0
雪    币: 138
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
有源码没?学习一下。
2021-2-22 11:54
0
游客
登录 | 注册 方可回帖
返回
//