Closed tmsdy closed 2 years ago
我自定义了一个消息接收的事件类:
class WeChatEvent(WeChatEventSink): def OnGetMessageEvent(self,msg,*args,**kwargs): ----自定义的消息处理逻辑-----
然后在主线程中进行了注册,并且启用了hook图片消息
wx.HookImageMsg(img_path) print(f'HookImageMsg: {ret}') wx.StartReceiveMessage() handle_msg= WeChatEvent() wxRobot.register_msg_event(pid_list[0], handle_msg)
现在遇到的问题是,收到图片消息后,只有执行完handle_msg,才会下载图片,但我想在自定义消息处理逻辑里面实现图片转发。 我尝试启用一个队列(收到图片消息后,把图片文件名存入队列,然后另外启用一个线程去处理队列消息,又遇到了另一个多线程访问COM对象的报错 _ctypes.COMError: (-2147221008, '尚未调用 CoInitialize。' )
所以有没有可能在执行handle_msg前将图片Hook到本地??
把广播消息放到线程中执行或许可以解决这个问题,我试试看。
等待大佬的好消息~
在线程中广播消息,客户端是可以阻塞的。代码已经提交了#110
验证OK
我自定义了一个消息接收的事件类:
然后在主线程中进行了注册,并且启用了hook图片消息
现在遇到的问题是,收到图片消息后,只有执行完handle_msg,才会下载图片,但我想在自定义消息处理逻辑里面实现图片转发。 我尝试启用一个队列(收到图片消息后,把图片文件名存入队列,然后另外启用一个线程去处理队列消息,又遇到了另一个多线程访问COM对象的报错 _ctypes.COMError: (-2147221008, '尚未调用 CoInitialize。' )
所以有没有可能在执行handle_msg前将图片Hook到本地??