今天小编给大家分享一下python怎么实现微信钉钉等软件多开分身的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

目前很多软件都限制单实例,大多数软件都是用Mutex来实现的 而这个东西咱们可以用handle去干掉它,并且不影响使用。 钉钉也是一样的步骤 不过Mutex的名字不一样 我测试的钉钉的是:

”\Sessions\1\BaseNamedObjects\{{239B7D43-86D5-4E5C-ADE6-CEC42155B475}}DingTalk“

这里要借助微软的两个软件 分别是:procexp handle

接下来开始正文:

首先咱们要手动判断下Mutex是哪个。

这就要用到procexp.exe了 以管理员身份运行该程序。

选中微信进程 按Ctrl+L 就会出现图中下半部分。

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

name \Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex

到这一步之后 这个工具的使命就完成了!接下来该使用handle了 在cmd 输入下面的代码

handle-a-u-p12668"\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"

然后我们在去关闭下这个句柄就可以了

handle-p12668-c460-y

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

然后我们再去打开微信就可以了。

下面我们用python去实现下

代码可能和分析不太一样 因为

"\Sessions\1\BaseNamedObjects\WeChat_GlobalConfig_Multi_Process_Mutex"

中的1 有时候会变成其他数字,所以我用了匹配规则

把代码和handle.exe 放在一个目录下

importosimportreimportpsutildefget_pid(name):"""获取所有的微信进程"""process_list=psutil.pids()pids=[]forpidinprocess_list:ifpsutil.Process(pid).name()==name:pids.append(pid)returnpidsdefmore_open(path):pids=get_pid("WeChat.exe")forpidinpids:#遍历所有微信的pid把Mutex都干掉cmd=f"handle-a-u-p{pid}"withos.popen(cmd)asf:result=f.read()search_result=""foriinresult.split("\n"):ifi.strip():ifi.strip().endswith("_WeChat_App_Instance_Identity_Mutex_Name"):search_result+=iifnotsearch_result:os.startfile(path)continuere_result=re.findall('(\d+):Mutant',search_result,re.S)#上面这个循环是匹配Mutex的handleifre_result:for_idinre_result:os.system(f'handle-p{pid}-c{_id}-y')os.startfile(path)path="D:\ProgramFiles(x86)\Tencent\WeChat\WeChat.exe"more_open(path)

以上就是“python怎么实现微信钉钉等软件多开分身”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。