如何通过一个毫不相关的进程去控制另一进程窗口中数据

    技术2022-05-11  51

    如何通过一个毫不相关的进程去控制另一进程窗口中数据?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); }}  

    最新回复(0)