真相只有一个事情到这里就真相大白了 , 来总结一下 。
微信判断是否启动的2个条件:
- 如果能成功创建互斥体对象 , 则启动微信
如果不能创建互斥体:
- 如果找到对应窗口 , 则置顶之 , 自己退出
如果没有找到 , 则启动微信
if (CreateMutex() == SUCCESS) { 启动微信} else { if (FindWindow() == SUCCESS) { 将已有窗口置顶 } else { 启动微信 }}而直接使用脚本启动的多个进程 , 虽然操作系统内核层面保证了互斥体的唯一 , 但由于启动速度相差不大 , 相应的窗口还没有来得及创建出来 , 导致走入上面的第二个启动逻辑 , 从而可以启动多个实例 。
小发现在分析的过程中 , 发现了一个有趣的事情:
在WeChatWin.dll中 , 上面的创建互斥体再上一级函数名字叫StartWaChat , 也是作为导出函数被该DLL导出:
文章插图
【2020电脑微信多开超强防封号 电脑多开微信怎么操作】这里不知道是故意还是不小心把微信的WeChat写成了WaChat , 如果是笔误 , 这位程序员同学看到了赶紧偷偷去改一下吧 。
推荐阅读
- 2020新开网店流程 淘宝新店铺怎么运营
- 三种转账方式限额对比 微信单日转账限额怎么办
- 教你一招轻松解决 安卓手机微信老是闪退怎么回事
- 教你微信免费转账到银行卡 微信怎么转账到别人的银行卡
- 小白到高手进阶的实操干货 什么是微信公众号矩阵?
- 说说微信运营的点滴 微信运营是做什么的?
- 蓝屏-电脑蓝屏维修-
- 如何选液晶电视,如何选择液晶电视2020
- windows10系统电脑虚拟键盘怎么打开的教程
- 笔记本win10系统电脑如何恢复出厂设置的方法