Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
011231
ComWeChatRobot
提交
e9e251cd
C
ComWeChatRobot
项目概览
011231
/
ComWeChatRobot
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
ComWeChatRobot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e9e251cd
编写于
4月 11, 2022
作者:
L
ljc545w
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
解决接收消息时会捕获发送消息问题
上级
6fd0ac13
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
7 deletion
+15
-7
DWeChatRobot/ReceiveMessage.cpp
DWeChatRobot/ReceiveMessage.cpp
+6
-0
Release/DWeChatRobot.dll
Release/DWeChatRobot.dll
+0
-0
wxRobot.py
wxRobot.py
+9
-7
未找到文件。
DWeChatRobot/ReceiveMessage.cpp
浏览文件 @
e9e251cd
...
...
@@ -24,6 +24,9 @@ DWORD ReceiveMessageNextCall = GetWeChatWinBase() + ReceiveMessageNextCallOffset
DWORD
JmpBackAddress
=
ReceiveMessageHookAddress
+
0x5
;
VOID
ReceiveMessage
(
DWORD
messageAddr
)
{
DWORD
isSendMessage
=
*
(
DWORD
*
)(
messageAddr
+
0x3C
);
if
(
isSendMessage
)
return
;
messageStruct
message
=
{
0
};
message
.
messagetype
=
*
(
DWORD
*
)(
messageAddr
+
0x38
);
...
...
@@ -53,6 +56,9 @@ VOID ReceiveMessage(DWORD messageAddr) {
memcpy
(
message
.
message
,
(
wchar_t
*
)(
*
(
DWORD
*
)(
messageAddr
+
0x70
)),
length
*
2
);
message
.
l_message
=
length
;
// FileSavePath:messageAddr + 0x1AC
messageVector
.
push_back
(
message
);
}
...
...
Release/DWeChatRobot.dll
浏览文件 @
e9e251cd
无法预览此类型文件
wxRobot.py
浏览文件 @
e9e251cd
...
...
@@ -149,16 +149,15 @@ class WeChatRobot():
try
:
return
_EnumFriendStatus
[
status
]
except
KeyError
:
return
"未知状态:{}"
.
format
(
hex
(
status
).
upper
().
replace
(
'0X'
,
'0x'
))
return
"未知状态:{}"
.
format
(
hex
(
status
).
upper
().
replace
(
'0X'
,
'0x'
))
def
ReceiveMessage
(
self
,
CallBackFunc
=
None
):
comtypes
.
CoInitialize
()
ThreadRobot
=
comtypes
.
client
.
CreateObject
(
"WeChatRobot.CWeChatRobot"
)
# 线程中必须新建一个对象,但无需重复注入
ThreadRobot
=
WeChatRobot
()
while
self
.
ReceiveMessageStarted
:
try
:
message
=
dict
(
ThreadRobot
.
CReceiveMessage
())
message
=
dict
(
ThreadRobot
.
robot
.
CReceiveMessage
())
if
CallBackFunc
:
CallBackFunc
(
ThreadRobot
,
message
)
except
IndexError
:
...
...
@@ -187,8 +186,11 @@ class WeChatRobot():
# 一个示例回调,将收到的文本消息转发给filehelper
def
ReceiveMessageCallBack
(
robot
,
message
):
if
message
[
'type'
]
==
1
and
message
[
'sender'
]
!=
'filehelper'
:
robot
.
CSendText
(
'filehelper'
,
message
[
'message'
])
if
message
[
'sender'
]
!=
'filehelper'
:
print
(
message
)
robot
.
robot
.
CSendText
(
'filehelper'
,
message
[
'message'
])
if
message
[
'sender'
]
!=
'filehelper'
:
wxSender
=
robot
.
GetWxUserInfo
(
message
[
'sender'
])
sender
=
wxSender
[
'wxNickName'
]
if
wxSender
[
'wxNickName'
]
!=
'null'
else
message
[
'sender'
]
print
(
"{}:{}"
.
format
(
sender
,
message
[
'message'
]))
def
test_SendText
():
import
os
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录