现在的位置: 首页 > 综合 > 正文

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

2013年10月26日 ⁄ 综合 ⁄ 共 4063字 ⁄ 字号 评论关闭

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

}
 

抱歉!评论已关闭.