网络聊天室(群发助手)—— C++

网络聊天室(群发助手





(一)项目要求

         能够实现针对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 Tab
	PreesKey(VK_TAB);
	PreesKey(VK_TAB);

	PreesKey(VK_DOWN);
	//模拟按键回车	
	PreesKey(VK_RETURN);

	while (1)
	{
		//模拟按键Down
		PreesKey(VK_DOWN);
		//模拟按键回车	
		PreesKey(VK_RETURN);
		//模拟按键Down
		PreesKey(VK_DOWN);
		//模拟按键回车	
		PreesKey(VK_RETURN);

		HWND curhwnd = GetForegroundWindow();
		if (curhwnd==qqhend)
		{
			MessageBox(NULL, L"已发送完毕!", NULL, NULL);
			break;
		}

	    ///////////////////////////////////////////////////////////////
		//到这里已经打开联系人了

		////发送消息
		SendMsg();
		//模拟按键Tab Tab
		PreesKey(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

猜你喜欢

转载自blog.csdn.net/xiaomu_Y/article/details/107559263
今日推荐