CSDN老文,审核不通过放在个人网站。

1 MFC QQ聊天轰炸机

突发奇想,想写一个轰炸自己QQ好友的聊天轰炸机,哈哈哈,看了半天自己就写了一个Low的聊天轰炸机,纯粹依靠剪切板往聊天窗口复制文字,然后模拟回车按钮完成发送,写了一个简单的MFC对话框Demo,大牛自动跳出,无需再看。

1.1 代码

/*-----进行轰炸按钮的消息响应函数--------------------*/
void CQQboomDlg::OnBnClickedButtonQqboom()
{
    // TODO: 在此添加控件通知处理程序代码
    vector<CString> m_BoomString;
    m_BoomString.clear();
    m_BoomString.shrink_to_fit();
    CString m_QQnicheng;
    m_NeedtoboomQQNum.GetWindowText(m_QQnicheng);//得到需要轰炸的QQ号码编辑框中所输入的文字信息,并赋值给m_QQnum
    if (m_QQnicheng=="")//如果输入的号码为空
    {
        AfxMessageBox("请输入你想轰炸的QQ号码");
    }
    else//如果输入的号码不为空
    {
        if (Boomfilepath =="")//如果所选择的QQ轰炸文件的路径为空
        {
            AfxMessageBox("请选择轰炸文件");
        }
        else//如果不为空
        {
            CString tempCString;
            CStdioFile filein;//声明文件操作对象
            if (filein.Open(Boomfilepath,CFile::modeRead))//逐行读取boom文件中内容
            {
                while (filein.ReadString(tempCString))
                {
                    m_BoomString.push_back(tempCString);//逐行压入m_BoomString容器中
                }
            }
            HWND hHandle = ::FindWindow("TXGuiFoundation",m_QQnicheng);//找到当前QQ窗口的句柄
            ::ShowWindow(hHandle,1);//显示窗口
            ::SetForegroundWindow(hHandle);//将得到的窗口设置到前台并激活窗口
            CString temp;
            m_BoomNum.GetWindowText(temp);//得到需要设置轰炸次数的字符串
            int BOOMNum=atoi(temp);//将字符串转为int型字符
            if (BOOMNum!=0)
            {
                for (int j=0;j<BOOMNum;++j)
                {
                    for (int i=0;i<m_BoomString.size();++i)
                    {
                        CString source=m_BoomString[i];
                        if (OpenClipboard())//打开剪切板
                        {
                            HGLOBAL clipbuffer; //定义一个HGLOBAL句柄变量用来指向分配的内存块
                            char * buffer;//定义指向字符型的指针变量
                            EmptyClipboard();//清空剪贴板  
                            clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);//在堆上分配可移动的内存块,程序返回一个内存句柄
                            buffer = (char*)GlobalLock(clipbuffer);  //对分配的内存块进行加锁,将内存块句柄转化成一个指针,并将相应的引用计数器加1
                            strcpy(buffer, LPCSTR(source));  //将用户输入的数据复制到指针变量中,实际上就是复制到分配的内存块中
                            GlobalUnlock(clipbuffer);//数据写入完毕,进行解锁操作,并将引用计数器数字减1
                            SetClipboardData(CF_TEXT,clipbuffer); //将存放有数据的内存块放入剪贴板的资源管理中
                            CloseClipboard();    //关闭剪贴板,释放剪贴板资源的占用权
                            ::SendMessage(hHandle, WM_PASTE, 0, 0);//模拟粘贴操作
                            ::SendMessage(hHandle, WM_KEYDOWN, VK_RETURN, 0);//模拟回车按键操作,类似于点击了发送
                        }

                    }   
                }
            }

        }
    }

}

1.2 使用步骤

  1. 单独拉出你想轰炸的QQ好友的聊天窗口,不要合在一起;

  2. 设置你想轰炸的QQ好友的昵称,就是你前面拉出来的单独的会话窗口好友的昵称;

  3. 选择你的BOOM.txt文件,里面是你想轰炸别人的话;

  4. 设置轰炸的次数。

1.3 使用截图

用MFC写一个简易的恶作剧QQ好友的聊天轰炸机-StubbornHuang Blog
用MFC写一个简易的恶作剧QQ好友的聊天轰炸机-StubbornHuang Blog