我们都知道,正常情况下,直接手动双击微信图标启动,后面启动的进程会进行全局单例模式检查,如果发现已经存在微信进程,就会直接把对应进程的微信窗口激活,定位到桌面最前面,随后自己退出。
这也就导致,如果已经有一个微信启动了,你再次点击微信,还是会展示已经展示的微信页面。

那么,怎么才能多开微信呢?想要知道方法,首先我们需要了解微信启动的原理。
Windows平台中,进程启动后创建一个全局唯一名字的互斥体,创建成功则正常启动,创建失败则判断一下是否这个互斥体已经存在。如果已经存在则说明已经有对应程序之前启动。

而微信判断是否启动的2个条件:
如果能成功创建互斥体对象,则启动微信
如果不能创建互斥体:
如果找到对应窗口,则置顶之,自己退出
如果没有找到,则启动微信

用伪代码来表示一下:

if (CreateMutex() == SUCCESS) {
  启动微信
} else {
  if (FindWindow() == SUCCESS) {
    将已有窗口置顶
  } else {
    启动微信
  }
}

而直接使用脚本启动的多个进程,虽然操作系统内核层面保证了互斥体的唯一,但由于启动速度相差不大,相应的窗口还没有来得及创建出来,导致走入上面的第二个启动逻辑,从而可以启动多个实例。

说到这儿,大家应该都明白我要说的方法是什么了吧,没错,就是使用批处理文件来同时执行两条甚至多条指令,这样就可以成功打开两个甚至多个微信了。
具体操作:
1.在桌面创建一个txt文件,后缀改为.bat或者.cmd,然后在其中写如下代码:

start D:\WeChat\WeChat.exe
start D:\WeChat\WeChat.exe

然后保存,双击执行,就可以启动两个微信了。想启动多个,就多写几行就可以了。