2016002 热血江湖辅助 向指定QQ发消息

背景:

个人没其它爱好,偶尔玩一下网络游戏,最近想起高中时代玩的网游热血江湖,可惜现在的热血江湖一片死人,都是机器人玩家,一个挂一台电脑挂N个帐号,

因为上班,游戏挂着不能实时去看着,TeamViewer也用过,但是感觉没必要,主要是在公司远程家里的电脑如果被发现影响不好.

所以才有个想法,写个小程序,家里电脑登录一个QQ号,然后定时给我另一个QQ发消息, 这样就能知道家里游戏的状态了.


准备:

开发工具:VS2008  就这个用着顺手

编程语言:C++ 界面就用MFC那一套了.


思路:

通过FindWindow来获取QQ聊天对话框的窗口句柄,然后向这个窗口发消息,

实际上QQ屏蔽了 SendMessage 和 WM_PASTE消息,但是可以使用 PostMessage和WM_CHAR,这样就能完成需求了.


部分代码:

void CRXJH_EXTENDDlg::SendOne(void)
{
	OnBnClickedButtonFindWnd();
	if(!m_hQQ)
	{
		AddLog("发送失败!");
		return;
	}
	int i;

	CString strSendType;
	m_comboSendType.UpdateData(TRUE);
	m_comboSendType.GetWindowText(strSendType);

	CString strMsg = m_strMsg;
	if(strSendType=="文件")
	{
		CStdioFile file;
		if(!file.Open(m_strFile,CFile::modeRead,NULL))
		{
			AddLog("发送失败,文件不存在!");
			return;
		}
		strMsg.Empty();
		CString strTxt;
		CString strEndLine;
		strEndLine.Format("%c%c                           ",0x0D,0x0A);
		while(file.ReadString(strTxt))
		{
			strMsg += strTxt;
			strMsg += strEndLine;
		}
		file.Close();
	}

	strMsg += _T(" \r\nQQ助手.\r\nBy shortCoder QQ:981455795");
	for(i=0;i<strMsg.GetLength();i++)
	{
		::PostMessage(m_hQQ,WM_CHAR,strMsg.GetAt(i) & 0xFF,0);
	}

	::PostMessage(m_hQQ, WM_KEYDOWN, VK_RETURN, 0);
	::PostMessage(m_hQQ, WM_KEYUP, VK_RETURN, 0);
	AddLog("发送成功!");
}

其中 WM_CHAR发送中文乱码的问题,请参考上一篇文章.


测试截图:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值