网络聊天室(群发助手
(一)项目要求
能够实现针对QQ某一分组成员群发消息的功能。
(二)开发环境
C++、MFC(图形窗口)、Git等
(二)系统模块设计
1.基于MFC绘制一个图形窗口 ,并添加相应的Button按键作为发送按键,添加一个对话框作为文本输入。
2.功能函数入口。
3.开启一个线程。
4.获取输入框里的信息。
5.模拟按键实现发送功能。
//发送的流程
void QQMessage:: SendAll()
{//将消息粘贴到粘贴板AaaToClipBoard();int fals = 1;//1.找到窗口 FindWindow(L"窗口的类名称",L"标题");HWND qqhend = FindWindow(L"TXGuiFoundation", L"QQ");//2.找到的qq窗口是不是在桌面的最前方 HWND fronthwnd = GetForegroundWindow();if (qqhend != fronthwnd) //判断qq窗口是不是在桌面的最前方 {if (!SetForegroundWindow(qqhend))//如果不在最前方 ,需要将qq窗口放到最前方 {MessageBox(NULL, L"找不到QQ窗口", NULL, NULL);}}int group = 1;//模拟按键Tab TabPreesKey(VK_TAB);PreesKey(VK_TAB);PreesKey(VK_DOWN);//模拟按键回车 PreesKey(VK_RETURN);while (1){//模拟按键DownPreesKey(VK_DOWN);//模拟按键回车 PreesKey(VK_RETURN);//模拟按键DownPreesKey(VK_DOWN);//模拟按键回车 PreesKey(VK_RETURN);HWND curhwnd = GetForegroundWindow();if (curhwnd==qqhend){MessageBox(NULL, L"已发送完毕!", NULL, NULL);break;}/////到这里已经打开联系人了发送消息SendMsg();//模拟按键Tab TabPreesKey(VK_TAB);PreesKey(VK_TAB);}
}
//模拟按键
void QQMessage:: PreesKey(BYTE vkey)
{keybd_event(vkey, 0, 0, 0); //模拟一个按键 按下Sleep(100);keybd_event(vkey, 0, KEYEVENTF_KEYUP, 0); //模拟一个按键 弹起Sleep(100);
}
//发送消息
void QQMessage:: SendMsg()
{///Ctrl+V//模拟Ctrl 按下keybd_event(VK_CONTROL, 0, 0, 0); Sleep(100);//模拟V 按下keybd_event(0x56, 0, 0, 0);Sleep(100);//模拟V 弹起keybd_event(0x56, 0, KEYEVENTF_KEYUP, 0);Sleep(100);//模拟Ctrl弹起keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);Sleep(100);///回车键发送 PreesKey(VK_RETURN);//模拟ESC退出PreesKey(VK_ESCAPE);
}
6.发送。
(三)视频演示
详情见如下链接:
http://m.youku.com/v_show/id_XNDc2NTQyNzcxMg==.html?pgcpgcid=UNzc5OTMyODQ0OA%3D%3D&sharekey=8822a181ab236c63d3a01af2bc97ea1d7
(四)源代码
详情见如下链接:
https://github.com/xiaomu00/Project/tree/master/%E7%BD%91%E7%BB%9C%E8%81%8A%E5%A4%A9%E5%AE%A4/%E7%BD%91%E7%BB%9C%E8%81%8A%E5%A4%A9%E5%AE%A4