当前位置:网站首页>通过程序启动QQ,实现自动登录.

通过程序启动QQ,实现自动登录.

2022-06-11 02:43:00 shlyyy

解决方案:

1、CreateProcess创建进程
2、找到QQ窗口
3、设置鼠标位置至账号编辑框,点击聚焦
4、模拟键盘输入账号
5、设置鼠标位置至密码编辑框,点击聚焦
6、模拟键盘输入密码
7、设置鼠标位置至密码编辑框,点击聚焦
8、模拟鼠标单击登录

这里从简,QQ打开以后,账号密码都记住了,所以免去了步骤3到步骤6。
其中,模拟鼠标的函数时mouse_event。模拟键盘的函数是keybd_event,自己百度一下就可以了。

示例代码

#include <windows.h>
#include <TCHAR.h>
//隐藏控制台
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")

int main()
{
    
	STARTUPINFO si = {
     0 };
	PROCESS_INFORMATION pi;

	si.cb = sizeof(si);
	BOOL res = CreateProcess(
		TEXT("D:\\Program Files (x86)\\Tecent\\Tecent QQ\\Bin\\QQ.exe"),
		NULL,
		NULL,
		NULL,
		FALSE,
		CREATE_NEW_CONSOLE,
		NULL,
		NULL, &si, &pi);
	TCHAR szTitle[MAX_PATH] = {
     0 };
	HWND hwnd = FindWindow(TEXT("TXGuiFoundation"), TEXT("QQ"));
	BOOL bOpened = FALSE;
	DWORD i = 0;
	for (i = 0; i < 100; i++)
	{
    
		if (hwnd != NULL)
		{
    
			bOpened = TRUE;
			RECT r;
			GetWindowRect(hwnd, &r);

			//鼠标聚焦到输入密码编辑框
// ::SetCursorPos(r.left + 170, r.top + 295);
// mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //点下左键
// mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); //松开左键
// keybd_event(97, 0, 0, 0);
// keybd_event(97, 0, KEYEVENTF_KEYUP, 0);
// Sleep(50);

			SetCursorPos(r.left + 170, r.top + 350);

			//鼠标聚焦以后停3s等待QQ窗口弹出在点击登录按钮
			Sleep(3000); 
			mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); //点下左键
			mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);   //松开左键
			
			break;
		}
		else
		{
    
			hwnd = FindWindow(TEXT("TXGuiFoundation"), TEXT("QQ"));
			Sleep(5);
		}
	}	
	return 0;
}
原网站

版权声明
本文为[shlyyy]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ArthurHai521/article/details/114757888