企业微信转发的上限正常是9个
但通过手动卡bug可以突破9个
同样的办法在个人微信上就不行
好奇背后的原因,分析了一下
个人微信和企业微信的界面都是Duilib
Duilib是基于消息做响应
鼠标的消息:
Duilib的响应:
四个鼠标消息中
原生的Duilib没有响应WM_RBUTTONUP // 鼠标右键抬起
个人微信的Duilib也没有响应WM_RBUTTONUP
但企业微信的Duilib有响应WM_RBUTTONUP
这就埋下了一个bug
正常点击复选框,会发出事件:UIEVENT_BUTTONUP
特殊点击复选框,发不出事件:UIEVENT_BUTTONUP
复选框卡在按下未抬起的状态
左边已经选择,但右边没有选择
再单击一下复选框,就卡出bug
左边没有选择,但右边已经选择
新版本漏洞修补情况
上面说的方法已经失效
用另外一种特殊操作
选择还是可以超过9个
但发送提示不能超过9个
case WM_LBUTTONDOWN:
CControlUI
*
pControl
=
FindControl(pt);
m_pEventClick
=
pControl;
event.
Type
=
UIEVENT_BUTTONDOWN;
case WM_LBUTTONUP:
if
( m_pEventClick
=
=
NULL )
break
;
event.
Type
=
UIEVENT_BUTTONUP;
m_pEventClick
=
NULL;
case WM_RBUTTONDOWN:
m_pEventClick
=
pControl;
event.
Type
=
UIEVENT_RBUTTONDOWN;
case WM_LBUTTONDOWN:
CControlUI
*
pControl
=
FindControl(pt);
m_pEventClick
=
pControl;
event.
Type
=
UIEVENT_BUTTONDOWN;
case WM_LBUTTONUP:
if
( m_pEventClick
=
=
NULL )
break
;
event.
Type
=
UIEVENT_BUTTONUP;
m_pEventClick
=
NULL;
case WM_RBUTTONDOWN:
m_pEventClick
=
pControl;
event.
Type
=
UIEVENT_RBUTTONDOWN;
/
/
if
(uMsg
=
=
WM_RBUTTONUP)
v115
=
uMsg
-
0x205
;
if
( !v115 )
m_pEventClick
=
NULL;
/
/
if
(uMsg
=
=
WM_RBUTTONUP)
v115
=
uMsg
-
0x205
;
if
( !v115 )
m_pEventClick
=
NULL;
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-7-31 10:46
被GhHei编辑
,原因: