2018-03-14 | IT | Unlock

程序猿视角"手撕"微信多开

1.简介

软件代码是如何实现同一个软件只能打开一次的?

“死锁”

操作系统上有两类锁,一类是进程内可见的,一类是跨进程可见的。

软件程序想要单实例运行,是使用了第二类锁, 声明一个跨进程可见的锁(互斥量Mutex)。

当你第二次打开同一个软件,启动时检测跨进程可见的锁是否存在,如果存在就退出,如果不存在就正常启动。

2.具体实现

(1)下载微软的增强版资源管理器

下载地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/process-explorer

(2)下载后用管理员身份运行,找到微信的进程 WeChat

multi-wechat_01.jpg

(3)按下Ctrl+L,显示详细信息,找到如下的两把锁。

WeChat_GlobalConfig_Multi_Process_Mutex

_WeChat_App_Instance_Identity_Mutex_Name

multi-wechat_02.jpg

然后右键, Close Handle, 结束掉这两把锁。

multi-wechat_03.jpg

(4)OK,可以打开第二个微信了。

评论加载中