Merge pull request #121 from zsjinwei/master

增加刷新登录二维码函数
This commit is contained in:
Changhua 2024-02-14 14:40:36 +08:00 committed by GitHub
commit f59cdd9816
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 37 additions and 1 deletions

View File

@ -408,3 +408,30 @@ OcrResult_t GetOcrResult(string path)
return ret;
}
void RefreshLoginQrcode() {
DWORD refreshLoginQrcodeCall1 = g_WeChatWinDllAddr + g_WxCalls.rlq.call1;
DWORD refreshLoginQrcodeCall2 = g_WeChatWinDllAddr + g_WxCalls.rlq.call2;
__asm {
pushad;
pushfd;
call refreshLoginQrcodeCall1;
mov ecx, eax;
call refreshLoginQrcodeCall2;
popfd;
popad;
}
}
string GetLoginUrl() {
// 判断是否登录, 已登录直接返回空字符
int isLogin = (int)GET_DWORD(g_WeChatWinDllAddr + g_WxCalls.login);
if (isLogin) {
return "";
}
DWORD loginUrlAddr = g_WeChatWinDllAddr + g_WxCalls.rlq.url;
string qrcodeLoginUrl = "http://weixin.qq.com/x/" + string(reinterpret_cast<char*>(*(DWORD*)loginUrlAddr));
return qrcodeLoginUrl;
}

View File

@ -41,7 +41,9 @@ WxCalls_t wxCalls = {
/* call1, call2, call3 */
{0x80A800, 0x80F270, 0x13DA3E0},
/* call1, call2 */
{0xF59E40, 0xCE6730}
{0xF59E40, 0xCE6730},
/* call1, call2, url */
{0xAE9DB0, 0xCDA6F0, 0x3040DE8}
};
int LoadCalls(const wchar_t *version, WxCalls_t *calls)

View File

@ -156,6 +156,12 @@ typedef struct CallFm {
DWORD call2;
} CallFm_t;
typedef struct CallRfLoginQr {
DWORD call1;
DWORD call2;
DWORD url;
} CallRfLoginQr_t;
typedef struct WxCalls {
DWORD login; // 登录状态
UserInfoCall_t ui; // 用户信息
@ -179,6 +185,7 @@ typedef struct WxCalls {
CallInviteCM_t irm; // 邀请群成员
CallOcr_t ocr; // OCR
CallFm_t fm; // 转发消息
CallRfLoginQr_t rlq; // 刷新登录二维码
} WxCalls_t;
struct WxString {