V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xzpush
V2EX  ›  程序员

如何获取微信新消息通知

  •  
  •   xzpush · 2022-05-12 16:57:14 +08:00 · 3484 次点击
    这是一个创建于 960 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.判断托盘图标是否闪烁,但是通过 pyautogui 拿到图标,拿不到是否闪烁
    2.hook 微信的 recv 函数,这种方式是不是会报毒

    大家有没有简单的实现方式?
    18 条回复    2022-05-22 20:20:59 +08:00
    LeegoYih
        1
    LeegoYih  
       2022-05-12 17:03:14 +08:00   ❤️ 1
    https://github.com/wechaty/wechaty
    看看这个能不能帮到你
    Danswerme
        2
    Danswerme  
       2022-05-12 19:35:01 +08:00
    歪个楼,安卓的话可以用 IFTTT 来获取微信新消息通知,我就是用的这个把安卓手机上消息转发到 iOS 。
    bybyte
        3
    bybyte  
       2022-05-12 20:34:47 +08:00
    用微信机器人框架
    cyningxu
        4
    cyningxu  
       2022-05-12 20:58:42 +08:00
    xposed
    pytth
        5
    pytth  
       2022-05-13 08:27:40 +08:00 via iPhone
    写个 Android 监听通知栏的 app 进行 webhook 就行了。
    xzpush
        6
    xzpush  
    OP
       2022-05-13 09:22:08 +08:00
    @LeegoYih 好,我去看下,谢谢
    xzpush
        7
    xzpush  
    OP
       2022-05-13 09:52:08 +08:00
    @LeegoYih 这个需要 token ?免费的有时间限制,付费的 200/月 太贵了吧
    LeegoYih
        8
    LeegoYih  
       2022-05-13 10:12:17 +08:00
    @xzpush

    自己实现监听消息可能需要一点 UIA 基础,UIA 类似 HTML 的 DOM ,用一个定时任务扫描聊天列表判断有没有新消息即可,需要 Windows Inspect 辅助开发。

    可以参考我用 Python 写的一个微信自动发消息 Demo

    https://github.com/yihleego/wechat-automation

    LeegoYih
        9
    LeegoYih  
       2022-05-13 10:24:43 +08:00
    千万不要用 DLL 注入的方式获取各种信息,微信封号是没办法解的。

    微信多开可以用关闭互斥体方式实现。
    如何关闭互斥体: https://github.com/yihleego/robotic-process-automation#%E9%80%9A%E8%BF%87%E5%85%B3%E9%97%AD%E4%BA%92%E6%96%A5%E4%BD%93%E5%AE%9E%E7%8E%B0%E5%A4%9A%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%90%E8%A1%8C

    理论上使用互斥体实现防止多开的应用,都可以通过关闭互斥体达到多开的效果,而且几乎没有风险,比如:微信、企微、钉钉、大部分网游。
    启动器: https://github.com/yihleego/launcher/
    xzpush
        10
    xzpush  
    OP
       2022-05-13 14:18:24 +08:00
    @LeegoYih 我看了你的代码,封装的很棒,用的 pywinauto ,和我第一种思路差不多,但是如何判断是否有新消息
    LeegoYih
        11
    LeegoYih  
       2022-05-13 15:59:30 +08:00
    @xzpush 我今天下班了回去写个 Demo 试试
    seven123
        12
    seven123  
       2022-05-13 17:03:07 +08:00
    之前和朋友聊过这个,有多种方法,企业微信或者解密微信 db ,可以看这篇文章,https://mp.weixin.qq.com/s/qRQO9xMvGTQL-ysolXJAxQ ,希望可以帮助到你
    xzpush
        13
    xzpush  
    OP
       2022-05-17 09:08:12 +08:00
    @seven123 这个获取 key 的过程能不能程序实现
    xzpush
        14
    xzpush  
    OP
       2022-05-17 09:08:25 +08:00
    @LeegoYih 怎么样兄弟
    seven123
        15
    seven123  
       2022-05-17 09:09:48 +08:00
    LeegoYih
        16
    LeegoYih  
       2022-05-17 12:19:01 +08:00
    @xzpush
    我试了一下,很难实现,硬要获取的话,需要保持微信前台,而且期间不能操作。
    主要是微信把未读消息的数量直接通过图片形式绘制到 icon 上了,而且 UIA 树只能获取聊天列表当前展示那几个。
    xzpush
        17
    xzpush  
    OP
       2022-05-22 20:17:45 +08:00
    @LeegoYih 嗯 是感觉操作 UI 的方式限制性很多
    xzpush
        18
    xzpush  
    OP
       2022-05-22 20:20:59 +08:00
    @seven123 看了下代码,这种方式每个微信版本都要用 OD 来手动获取 key 的偏移地址吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2690 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:01 · PVG 12:01 · LAX 20:01 · JFK 23:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.