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