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

来源:互联网 发布:华为软件产品线部门 编辑:程序博客网 时间:2024/04/29 14:04

背景:

个人没其它爱好,偶尔玩一下网络游戏,最近想起高中时代玩的网游热血江湖,可惜现在的热血江湖一片死人,都是机器人玩家,一个挂一台电脑挂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发送中文乱码的问题,请参考上一篇文章.


测试截图:


0 0
原创粉丝点击