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

本项目采用C++与MFC实现QQ群发消息功能,通过模拟按键操作完成消息发送,适用于特定分组成员。开发环境包括C++、MFC及Git,涉及线程启动、窗口操作与按键模拟等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络聊天室(群发助手





(一)项目要求

         能够实现针对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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值