一、目标
通过《微信多开原理介绍》我们知道了要实现多开,必须要关闭微信打开的这个 _WeChat_App_Instance_Identity_Mutex_Name 互斥量。那么我们编程来实现这个微信多开这个功能一共需要如下几个步骤:
- 通过注册表来找到微信的安装路径
- 查到微信进程
- 遍历微信进程中所有的句柄,找到 _WeChat_App_Instance_Identity_Mutex_Name 这个句柄,然后关闭它。
二、分析


三、代码
void runWeChat()
{
HKEY hKey = NULL;
// 通过注册表找到微信安装目录
if (ERROR_SUCCESS != RegOpenKey(HKEY_CURRENT_USER, L"Software\\Tencent\\WeChat", &hKey))
{
return;
}
DWORD Type = REG_SZ;
WCHAR Path[MAX_PATH] = { 0 };
DWORD cbData = MAX_PATH * sizeof(WCHAR);
if (ERROR_SUCCESS != RegQueryValueEx(hKey, L"InstallPath", 0, &Type, (LPBYTE)Path, &cbData))
{
return;
}
// 把微信exe的文件名加到安装路径后面
PathAppend(Path, L"WeChat.exe");
// 启动微信客户端
ShellExecute(NULL, L"Open", Path, NULL, NULL, SW_SHOW);
}
四、总结
有问题可以加我wx: fenfei331 讨论下。
关注微信公众号,最新技术干货实时推送
