微信多开PC版微信,无需关闭已经打开的
不能多开的原因:Mutex互斥,需要使用windows api终止互斥体。
源码如下:
#include <aclapi.h>
#include <shlwapi.h>
#include <windows.h>
#pragma comment(lib,"Shlwapi.lib")
void enableMultiWeChat()
{
HANDLE hMutex = CreateMutexW(NULL, FALSE, L"_WeChat_App_Instance_Identity_Mutex_Name");
SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY;
PSID pEveryoneSID = NULL;
char szBuffer[4096] = { 0 };
PACL pAcl = (PACL)szBuffer;
AllocateAndInitializeSid(&SIDAuthWorld, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 0, &pEveryoneSID);
InitializeAcl(pAcl, sizeof(szBuffer), ACL_REVISION);
AddAccessDeniedAce(pAcl, ACL_REVISION, MUTEX_ALL_ACCESS, pEveryoneSID);
SetSecurityInfo(hMutex, SE_KERNEL_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, pAcl, NULL);
}
int main()
{
enableMultiWeChat();
WinExec("D:\\ProgramFiles\\Tencent\\WeChat\\WeChat.exe", SW_SHOW);
return 0;
}