V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MasterCai
V2EX  ›  程序员

如何使剪切板上的“@xxx”内容粘贴到微信中可以正确 @

  •  
  •   MasterCai · 2021-01-08 08:58:29 +08:00 · 3541 次点击
    这是一个创建于 1413 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一个需求,通过一个脚本获得一个名单,然后我需要在一个微信群中一个个 @这个名单上的人。尝试过自己构造符合微信 @要求的字符串 @xx @xxx @xxxx 这种,但是复制到微信消息框里然后发出去没有效果,有什么办法可以解决吗?

    19 条回复    2021-01-09 09:49:41 +08:00
    dream7758522
        1
    dream7758522  
       2021-01-08 09:03:16 +08:00 via Android
    字符一个一个的粘贴进去
    Maxxxxyu
        2
    Maxxxxyu  
       2021-01-08 09:03:50 +08:00 via iPhone
    需要 @微信号吧,反正企业微信这么弄是没问题的
    MasterCai
        3
    MasterCai  
    OP
       2021-01-08 10:34:30 +08:00
    @dream7758522 这样和我自己手动输入也没啥区别了吧。。
    @Maxxxxyu 好吧,普通微信没效果,@微信号也不行
    kokutou
        4
    kokutou  
       2021-01-08 10:38:42 +08:00
    autohotkey send 函数吧
    kokutou
        5
    kokutou  
       2021-01-08 10:40:10 +08:00
    autohotkey 写个脚本, 逐个处理下字串, send 发送, 检测输入了 @xxx 后遇到空格就回车, 这样应该可以.
    musi
        6
    musi  
       2021-01-08 11:23:55 +08:00 via iPhone
    肯定不能直接艾特名字,不然一个群里两个名字一样的人怎么办?一起艾特了?
    yolee599
        7
    yolee599  
       2021-01-08 11:37:40 +08:00
    微信输入 @ 之后会弹出一个列表,需要选择的,估计在选择的时候附加了用户唯一标识到消息里。如果没有这个唯一标识群里有两个昵称一样的人怎么办?
    wuweijia
        8
    wuweijia  
       2021-01-08 11:40:21 +08:00
    做不到
    MasterCai
        9
    MasterCai  
    OP
       2021-01-08 12:13:18 +08:00
    @kokutou macos 好像没有 autohotkey 工具。。但是你这个思路我大概明白了,谢谢
    @musi
    @yolee599 可以保证群里所有人的备注都不相同,而且就算用微信号也不行,感觉应该不是这个问题
    xiaojiqiaozhi
        10
    xiaojiqiaozhi  
       2021-01-08 12:19:26 +08:00 via Android
    @MasterCai MAC 有个微信小助手,源码在 github 可以找到,改造改造应该能满足你的需求
    musi
        11
    musi  
       2021-01-08 12:41:11 +08:00 via iPhone
    @yolee599 你要在微信方考虑,你新拉的群用户怎么给你保证昵称不相同?因为艾特人的逻辑是微信实现的不是你实现的
    auroraccc
        12
    auroraccc  
       2021-01-08 13:07:14 +08:00
    微信的 @联系人里有特殊的零宽标识符,你直接粘贴一个 @xxx 他是识别不了的,只会认为你是一个普通文本。要实现你这个功能你得弄到他真正的 @联系人的格式。
    yolee599
        13
    yolee599  
       2021-01-08 13:35:42 +08:00
    @MasterCai #9
    @musi #11

    我的意思就是微信的逻辑是我们看不到的,肯定是有用唯一标识的,不是简单的输入字符串
    kidlj
        14
    kidlj  
       2021-01-08 13:40:58 +08:00 via iPhone
    识别 @ 是有交互逻辑的,微信从粘贴板识别到的文字,把这块交互逻辑给禁掉了,所以没办法。

    就好比服务会把用户提交的内容做 html/sql escape 一样,是一种安全策略。
    Drumming
        15
    Drumming  
       2021-01-08 13:43:51 +08:00
    [at=wxid_XXXX]测试艾特标识

    PC 版的是这样的...
    MasterCai
        16
    MasterCai  
    OP
       2021-01-08 13:44:56 +08:00
    @xiaojiqiaozhi 好的谢谢,我看一下
    @auroraccc
    @yolee599
    我明白这个意思,所以我就是想问一下有没有人知道这个格式。。
    @kidlj 好吧,那我试一下一个个字符的粘贴能不能行
    icyalala
        17
    icyalala  
       2021-01-08 14:43:33 +08:00
    不是说你能保证你自己微信群里昵称都不同就 OK,微信自己肯定要处理昵称相同的 AT,所以肯定不能直接用文本内容匹配。

    所以 AT 对应的 ID 甚至都不是保存在文本里的,微信会自己记录输入框相关的 meta,你除非 hook 微信本身的程序或者通信数据,不然只在文本内容上做文章是做不到的。
    dingdangnao
        18
    dingdangnao  
       2021-01-08 14:56:16 +08:00
    就跟群里有人发 @所有人 实际上什么作用都没有 一个意思
    dream7758522
        19
    dream7758522  
       2021-01-09 09:49:41 +08:00 via Android
    你既然用脚本了,不会弄一个逐字输入的脚本吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:44 · PVG 02:44 · LAX 10:44 · JFK 13:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.