如何通过一个毫不相关的进程去控制另一进程窗口中数据?as,edit框内容等等...,这和我们写程序获取ie的地址栏类似!如下:
void CMy111Dlg::OnBnClickedButton9() ... { // TODO: 在此添加控件通知处理程序代码 CWnd* pWnd; /**//*CString str="111"; pWnd=pWnd->FindWindow(NULL,str); pWnd->SetWindowText(str+".cn");*///pWnd = CWnd::FromHandle((HWND)0x001C093C);//CString str="111";//pWnd->SetWindowText(str+".cn");//CString str="Myfirst";//HWND hWnd;//hWnd=::FindWindow(NULL,"111");//pWnd=pWnd->FindWindowEx(hWnd,NULL,"Edit",0); /**//*pWnd=pWnd->FindWindow("IEFrame",NULL); //pWnd=pWnd->GetDlgItem(0x0000A005); //pWnd=pWnd->GetDlgItem(0x0000A005); //pWnd=pWnd->GetDlgItem(0x0000A205); //pWnd=pWnd->GetDlgItem(0x0000A205); //pWnd=pWnd->GetDlgItem(0x0000A205); pWnd=pWnd->FindWindowEx(pWnd->m_hWnd,NULL,"WorkerW",NULL); pWnd=pWnd->FindWindowExA(pWnd->m_hWnd,NULL,"rebarWindow32",NULL); pWnd=pWnd->FindWindowExA(pWnd->m_hWnd,NULL,"comboboxex32",NULL); pWnd=pWnd->FindWindowExA(pWnd->m_hWnd,NULL,"combobox",NULL); pWnd=pWnd->FindWindowExA(pWnd->m_hWnd,NULL,"edit",NULL); char sz[255]; pWnd->SendMessage(WM_GETTEXT,255,(LPARAM)sz); CString sss; sss.Format("%s",sz); MessageBox(sss);*//**//*pWnd=pWnd->FindWindow(NULL,"111");//方法一pWnd=pWnd->GetDlgItem(0x000003EE);char sz[255]="23455";pWnd->SendMessage(WM_SETTEXT,255,(LPARAM)sz);*/ //方法二/**//*pWnd=pWnd->GetWindow(GW_CHILD);while(pWnd){ //pWnd->SetWindowText(str+".cn"); CString strcn; GetClassName(pWnd->m_hWnd,strcn.GetBufferSetLength(100),100); if(strcn=="Edit") { CString temp; //pWnd->GetWindowText(temp);//? char szTxt[255]; pWnd->SendMessage(WM_GETTEXT,255,(LPARAM)szTxt); temp.Format("%s",szTxt); //MessageBox(temp); if(strcmp(temp,"Myfirst")==0) { MessageBox("find"); //pWnd->SetWindowText(temp+".132"); char szTxt[255]=".3255"; char sz[255]; strcpy(sz,temp); strcat(sz,szTxt); pWnd->SendMessage(WM_SETTEXT,255,(LPARAM)sz); } else MessageBox("wrong"); } pWnd=pWnd->GetWindow(GW_HWNDNEXT);}*/ /**//*CWnd* pMainWnd=AfxGetMainWnd()->GetWindow(GW_HWNDFIRST); while(pMainWnd) { CString strClassName; GetClassName(pMainWnd->m_hWnd,strClassName.GetBufferSetLength(100),100); if(strClassName=="IEFrame") { CWnd* pChildWnd=CWnd::FromHandle(::FindWindowEx(pMainWnd->m_hWnd,NULL, "WorkerW",NULL)); if(pChildWnd) { CWnd* pChild2Wnd=CWnd::FromHandle(::FindWindowEx(pChildWnd->m_hWnd,NULL, "rebarWindow32",NULL)); if(pChild2Wnd) { CWnd* pChild3Wnd=CWnd::FromHandle(::FindWindowEx(pChild2Wnd->m_hWnd,NULL,"ComBoBoxEx32",NULL)); if(pChild3Wnd) { CWnd* pChild4Wnd=CWnd::FromHandle(::FindWindowEx(pChild3Wnd->m_hWnd,NULL,"ComBoBox",NULL)); if(pChild4Wnd) { CWnd* pChild5Wnd=CWnd::FromHandle(::FindWindowEx(pChild4Wnd->m_hWnd,NULL,"Edit",NULL)); if(pChild5Wnd) { char szTxt[255]; pChild5Wnd->SendMessage(WM_GETTEXT,255,(LPARAM)szTxt); CString sss; sss.Format("%s",szTxt); MessageBox(sss); sss+=".cn"; strcpy(szTxt,sss); pChild5Wnd->SendMessage(WM_SETTEXT,255,(LPARAM)szTxt); } } } } } } pMainWnd = pMainWnd->GetWindow(GW_HWNDNEXT); }*/ pWnd=pWnd->FindWindow("IEFrame",NULL); pWnd=pWnd->GetWindow(GW_CHILD); while(pWnd) ...{ CString strcn; GetClassName(pWnd->m_hWnd,strcn.GetBufferSetLength(100),100); if(strcn=="WorkerW") ...{ CWnd* pWnd2=CWnd::FromHandle(::FindWindowEx(pWnd->m_hWnd,NULL,"rebarWindow32",NULL)); if(pWnd2) ...{ CWnd* pWnd3=CWnd::FromHandle(::FindWindowEx(pWnd2->m_hWnd,NULL,"comboboxex32",NULL)); if(pWnd3) ...{ CWnd* pWnd4=CWnd::FromHandle(::FindWindowEx(pWnd3->m_hWnd,NULL,"combobox",NULL)); if(pWnd4) ...{ CWnd* pWnd5=CWnd::FromHandle(::FindWindowEx(pWnd4->m_hWnd,NULL,"Edit",NULL)); if(pWnd5) ...{ char buf[255]; pWnd5->SendMessage(WM_GETTEXT,255,(LPARAM)buf); CString sss; sss.Format("%s",buf); MessageBox(sss); } } } } } pWnd=pWnd->GetWindow(GW_HWNDNEXT); }}