diff --git a/App/App.py b/App/App.py index b3454d7..e2a39aa 100644 --- a/App/App.py +++ b/App/App.py @@ -45,20 +45,25 @@ def main(): # 接收消息。先定义消息处理回调 def OnTextMsg(msg: sdk.WxMessage): + def getName(id): + contact = contacts.get(id) + if contact is None: + return id + return contact.wxName + s = "收到" if msg.self == 1: # 忽略自己发的消息 s += f"来自自己的消息" print(f"\n{s}") - return 0 msgType = WxMsgTypes.get(msg.type, '未知类型') - nickName = contacts.get(msg.wxId, {'wxName': 'NoBody'}).wxName - if msg.source == 0: - s += f"来自好友[{nickName}]的{msgType}消息:" - else: - groupName = contacts.get(msg.roomId, {'wxName': 'Unknown'}).wxName + nickName = getName(msg.wxId) + if msg.source == 1: + groupName = getName(msg.roomId) s += f"来自群[{groupName}]的[{nickName}]的{msgType}消息:" + else: + s += f"来自[{nickName}]的{msgType}消息:" s += f"\r\n{msg.content}" if msg.type != 0x01: @@ -70,6 +75,7 @@ def main(): print("Message: 接收通知中......") sdk.WxEnableRecvMsg(OnTextMsg) # 设置回调,接收消息 + while True: time.sleep(1) diff --git a/Spy/receive_msg.cpp b/Spy/receive_msg.cpp index a2c0f00..ce63083 100644 --- a/Spy/receive_msg.cpp +++ b/Spy/receive_msg.cpp @@ -69,13 +69,13 @@ void DispatchMsg(DWORD reg) lMsg.id = GetBstrByAddress(*p + g_WxCalls.recvMsg.msgId); lMsg.xml = GetBstrByAddress(*p + g_WxCalls.recvMsg.msgXml); - if (wcsstr(lMsg.xml, L"") == NULL) { - // pMsg.roomId = {0}; - lMsg.wxId = GetBstrByAddress(*p + g_WxCalls.recvMsg.roomId); - } else { + // 群里的系统消息,xml 为空 + if ((lMsg.xml == NULL) || (wcsstr(lMsg.xml, L"") != NULL)) { lMsg.source = 1; lMsg.wxId = GetBstrByAddress(*p + g_WxCalls.recvMsg.wxId); lMsg.roomId = GetBstrByAddress(*p + g_WxCalls.recvMsg.roomId); + } else { + lMsg.wxId = GetBstrByAddress(*p + g_WxCalls.recvMsg.roomId); } lMsg.content = GetBstrByAddress(*p + g_WxCalls.recvMsg.content); g_MsgQueue.push(lMsg); // 发送消息