16,472
社区成员
发帖
与我相关
我的任务
分享
void CSendWangWangDlg::OnButton1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
HWND hwnd=::FindWindow("StandardFrame",NULL);
CString str=m_edit;
int i=0;
while(hwnd)
{
i=0;
CString string;
char a[100];
HWND pro,pro1,pro2; // 得到窗口名称
::GetWindowText(hwnd,a,100);
string.Format("%s",a); // 如果含有"与"(因为QQ聊天窗口的名字都是"与XX聊天中");说明是QQ窗口
if(string.Find(" - ")>-1)
{
pro=FindWindowEx(hwnd,NULL,"SplitterBar",NULL);
if(pro)
{
pro1=FindWindowEx(pro,NULL,"StandardWindow",NULL);
pro1=FindWindowEx(pro,pro1,"StandardWindow",NULL);
if(pro1)
{
pro2=FindWindowEx(pro1,NULL,"RichEditComponent",NULL);
if(pro2)
{
::SendMessage(pro2,WM_SETTEXT,0,(LPARAM)(LPCTSTR)str);
::SetForegroundWindow(pro2);
Sleep(50);
keybd_event(VK_RETURN ,NULL,NULL,NULL);
keybd_event(VK_RETURN ,NULL,KEYEVENTF_KEYUP,NULL);
}
}
}
}
hwnd=::GetWindow(hwnd,GW_HWNDNEXT);
}
AfxMessageBox("消息发送完成!");
}
以上代码是我以前写的,你可以参考一下,另外FindWindow,GetWindowText,FindWindowEx,SendMessage这几个函数你需要了解