VC++实现QQ消息群发

    技术2026-06-13  0

    void QQSendMsg(CString strMsg,BOOL bCloseWindow){AFX_MANAGE_STATE(AfxGetStaticModuleState( ));//切换回调用程序CString str;CWnd* pMainWnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);while (pMainWnd){   HWND hWnd,hNext;   CWnd* pChildWnd = NULL;

       CWnd *pDlgWnd = NULL;   hWnd = pMainWnd->m_hWnd;   pMainWnd->GetWindowText(str);   if(str.Find (L"交谈")>-1 || str.Find (L"群")>-1)//找到聊天主窗口Begin   {    hWnd=::FindWindowEx(pMainWnd->m_hWnd,NULL,L"#32770",NULL);    pDlgWnd = CWnd::FromHandle(hWnd);    hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,L"AfxWnd42",NULL);    while(hWnd)//找消息填写控件    {

         pChildWnd=CWnd::FromHandle(hWnd);     hNext = ::FindWindowEx(pChildWnd->m_hWnd,NULL,L"RICHEDIT20A",NULL);     if(hNext)     {      break;     }     else     {      hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,L"AfxWnd42",NULL);     }    }    if(hNext){//找到消息填写控件     CRichEditCtrl* pRich=(CRichEditCtrl*)(CWnd::FromHandle(hNext));         pRich->ReplaceSel (strMsg);//填上将要发送的内容    }else return;    //找消息发送按钮    hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL);    while (hWnd)    {     pChildWnd=CWnd::FromHandle(hWnd);     //CWnd *pChildWnd=CWnd::FromHandle(hWnd);     pChildWnd->GetWindowText(str);     if(str.Find (L"发送")>-1)     {      pChildWnd->SendMessage (BM_CLICK);//发送      //return;//退出      break;     }     hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL);    }

        if(TRUE == bCloseWindow)    {     hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL);     while (hWnd)     {      pChildWnd=CWnd::FromHandle(hWnd);      //CWnd *pChildWnd=CWnd::FromHandle(hWnd);      pChildWnd->GetWindowText(str);      if(str.Find (L"关闭")>-1)      {       pChildWnd->SendMessage (BM_CLICK);//关闭       //return;//退出       break;      }      hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL);     }    }    //return;   }//找到聊天主窗口End   pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT); //继续找}//While

    }void QQSendMessage(CWnd * pDlgMainWnd ,CString strMsg,BOOL bCloseWindow){CString str;CWnd* pMainWnd = pDlgMainWnd->GetWindow(GW_HWNDFIRST);while (pMainWnd){   HWND hWnd,hNext;   CWnd* pChildWnd = NULL;

       CWnd *pDlgWnd = NULL;   hWnd = pMainWnd->m_hWnd;   pMainWnd->GetWindowText(str);   if(str.Find (L"交谈")>-1 || str.Find (L"群")>-1)//找到聊天主窗口Begin   {    hWnd=::FindWindowEx(pMainWnd->m_hWnd,NULL,L"#32770",NULL);    pDlgWnd = CWnd::FromHandle(hWnd);    hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,L"AfxWnd42",NULL);    while(hWnd)//找消息填写控件    {

         pChildWnd=CWnd::FromHandle(hWnd);     hNext = ::FindWindowEx(pChildWnd->m_hWnd,NULL,L"RICHEDIT20A",NULL);     if(hNext)     {      break;     }     else     {      hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,L"AfxWnd42",NULL);     }    }    if(hNext){//找到消息填写控件     CRichEditCtrl* pRich=(CRichEditCtrl*)(CWnd::FromHandle(hNext));         pRich->ReplaceSel (strMsg);//填上将要发送的内容    }else return;    //找消息发送按钮    hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL);    while (hWnd)    {     pChildWnd=CWnd::FromHandle(hWnd);     //CWnd *pChildWnd=CWnd::FromHandle(hWnd);     pChildWnd->GetWindowText(str);     if(str.Find (L"发送")>-1)     {      pChildWnd->SendMessage (BM_CLICK);//发送      //return;//退出      break;     }     hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL);    }

        if(TRUE == bCloseWindow)    {     hWnd=::FindWindowEx(pDlgWnd->m_hWnd,NULL,NULL,NULL);     while (hWnd)     {      pChildWnd=CWnd::FromHandle(hWnd);      //CWnd *pChildWnd=CWnd::FromHandle(hWnd);      pChildWnd->GetWindowText(str);      if(str.Find (L"关闭")>-1)      {       pChildWnd->SendMessage (BM_CLICK);//关闭       //return;//退出       break;      }      hWnd=::FindWindowEx(pDlgWnd->m_hWnd,hWnd,NULL,NULL);     }    }    //return;   }//找到聊天主窗口End   pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT); //继续找}//While

    最新回复(0)