本文共 3254 字,大约阅读时间需要 10 分钟。
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转载地址:http://ovsjz.baihongyu.com/