一、目标

一、目标

通过《微信多开原理介绍》我们知道了要实现多开,必须要关闭微信打开的这个 _WeChat_App_Instance_Identity_Mutex_Name 互斥量。那么我们编程来实现这个微信多开这个功能一共需要如下几个步骤:

  1. 通过注册表来找到微信的安装路径
  2. 查到微信进程
  3. 遍历微信进程中所有的句柄,找到 _WeChat_App_Instance_Identity_Mutex_Name 这个句柄,然后关闭它。

二、分析

regedit
1: 启动注册表
findwechar
2: 查找wechar安装路径

三、代码

wxOpenDlg.cpp
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 讨论下。

关注微信公众号,最新技术干货实时推送

100