吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4996|回复: 22
收起左侧

[Python 转载] 用python实现微信多开 【钉钉同理】

  [复制链接]
ccb0429 发表于 2021-11-19 18:54
第一次发帖 可能排版不太好 多多担待
我发现坛友分享的很多都是通过cmd 去start 多个微信
虽然能实现多开,但不够灵活,比如我上午登录了一个微信,下午在登录就不太好用了
当然也可能是我start的姿势不对。于是我就搜了下单实例原理,自己动手实现了个随用随开的。目前很多软件都限制单实例,大多数软件都是用Mutex来实现的
而这个东西咱们可以用handle去干掉它,并且不影响使用。
钉钉也是一样的步骤  不过Mutex的名字不一样
我测试的钉钉的是:”\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk“
这里要借助微软的两个软件  分别是:procexp handle  

接下来开始正文:
首先咱们要手动判断下Mutex是哪个。
这就要用到procexp.exe了 以管理员身份运行该程序。
选中微信进程 按Ctrl+L 就会出现图中下半部分。

微信截图_20211119182938.png

在软件中我们可以找type 是Mutant  的 然后右键有个关闭  一个一个试 这里我已经试过了就不演示了 直接给大家name

\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex

到这一步之后 这个工具的使命就完成了!接下来该使用handle了
在cmd 输入下面的代码
[Shell] 纯文本查看 复制代码
handle -a -u -p 12668 "\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"


微信截图_20211119184030.png

然后我们在去关闭下这个句柄就可以了
[Shell] 纯文本查看 复制代码
handle -p 12668 -c 460 -y


注意:这句代码需要管理员权限

然后我们再去打开微信就可以了。
下面我们用python去实现下
代码可能和分析不太一样  因为"\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex" 中的1 有时候会变成其他数字,所以我用了匹配规则
把代码和handle.exe 放在一个目录下


[Python] 纯文本查看 复制代码
import os
import re
import psutil


def get_pid(name):
    """
    获取所有的微信进程
    """
    process_list = psutil.pids()
    pids = []
    for pid in process_list:
        if psutil.Process(pid).name() == name:
            pids.append(pid)
    return pids


def more_open(path):
    pids = get_pid("WeChat.exe") 
    for pid in pids:
        #遍历所有微信的pid 把 Mutex都干掉
        cmd = f"handle -a -u -p {pid}"
        with os.popen(cmd) as f:
            result = f.read()
        search_result = ""
        for i in result.split("\n"):
            if i.strip():
                if i.strip().endswith("_WeChat_App_Instance_Identity_Mutex_Name"):
                    search_result += i
        if not search_result:
            os.startfile(path)
            continue
        re_result = re.findall('(\d+): Mutant', search_result, re.S)
        #上面这个循环是匹配 Mutex的handle
        if re_result:
            for _id in re_result:
                os.system(f'handle -p {pid} -c {_id} -y')
            os.startfile(path)

path = "D:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
more_open(path)

handle.zip

2.08 MB, 下载次数: 228, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 7吾爱币 +11 热心值 +7 收起 理由
brux + 1 + 1 谢谢@Thanks!
cclong + 1 + 1 跟大佬学习一下
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
fanyinya + 1 + 1 用心讨论,共获提升!
growing88 + 1 + 1 谢谢@Thanks!
52jcool + 1 + 1 我很赞同!
lovlin999 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

brux 发表于 2022-7-23 07:18
非常感谢。
win10没问题。

用这个批处理执行
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&py weixin_more.py&&exit

对了 请问 为啥 有两个 procexp.exe, 64位只用64位的可以吗
 楼主| ccb0429 发表于 2022-3-10 10:45
lj149446 发表于 2022-3-9 12:51
handle  命令在cmd里面无法运行呢,是需要设置环境变量嘛

用cd命令  切换到handle程序所在的目录
blackboard 发表于 2021-11-19 20:41
lovlin999 发表于 2021-11-19 22:16
学习学习,感谢分享!
52jcool 发表于 2021-11-19 22:22
收藏,学习,谢谢
temp13 发表于 2021-11-19 22:35
强大,支持!
wapj2524 发表于 2021-11-19 23:24
厉害,学习一下
 楼主| ccb0429 发表于 2021-11-20 10:43
yfc1996 发表于 2021-11-20 09:28
太需要这样的多开功能

这个方法适用于很多软件。有编程基础可以多试试其他的软件。
BellNet 发表于 2021-11-20 11:04
感谢楼主分享!
蜉蝣 发表于 2021-11-21 14:26
谢谢分享,我想到一个游戏可以用这个方法双开了。
Avanana7mi 发表于 2021-11-23 22:35
厉害厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表