查找IE窗口里的submit按钮,模拟点击

来源:互联网 发布:西门子s7300仿真软件 编辑:程序博客网 时间:2024/05/20 12:24

the   following   code   will   click   submit   button   of   html   page   in   IE,   modify   it   to   click   other   button.  
///////////////////////////////////////////////////////////////////////////////////////  
//click   submit   button   of   IE   window  
//If   it   works,   it   is   written   by   masterz,otherwise   I   don't  
//know   who   writes   it^_^  
///////////////////////////////////////////////////////////////////////////////////////  
void   CGetIESrcDlg::NavigateToUrl()  
{  
//   Import   the   following   files   in   your   stdafx.h  
// #import   <mshtml.tlb>   //   Internet   Explorer   5  
// #import   <shdocvw.dll>  
//     Refer   to   "Connect   to   Internet   Explorer   Instances,   From   your   own   Process.   "   in   SHDocVw::IShellWindowsPtr   m_spSHWinds;  
CoInitialize(NULL);  
if(m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows))   ==   S_OK)  
{  
IDispatchPtr   spDisp;  
long   nCount   =   m_spSHWinds->GetCount();  
for   (long   i   =   0;   i   <   nCount;   i++)  
{  
_variant_t   va(i,   VT_I4);  
spDisp   =   m_spSHWinds->Item(va);  
SHDocVw::IWebBrowser2Ptr   spBrowser(spDisp);  
if   (spBrowser   !=   NULL)  
{  
IDispatchPtr   spDisp;  
if(spBrowser->get_Document(&spDisp)   ==   S_OK   &&   spDisp!=   0   )  
{  
MSHTML::IHTMLDocument2Ptr   spHtmlDocument(spDisp);  
MSHTML::IHTMLElementPtr   spHtmlElement;  
if(spHtmlDocument==NULL)  
continue;  
spHtmlDocument->get_body(&spHtmlElement);  
if(spHtmlDocument==NULL)  
continue;  
HRESULT   hr;  
MSHTML::IHTMLElementCollection*   pColl=NULL;  
hr=spHtmlDocument->get_all(&pColl);  
if(pColl!=NULL&&SUCCEEDED(hr))  
{  
MSHTML::IHTMLElement*   pElem=NULL;  
_variant_t   index;  
index.vt=VT_I4;  
index.intVal=0;  
_variant_t   name("Submit");  
IDispatchPtr   disp;  
disp=pColl->item(name,index);  
if(disp==NULL)  
hr=E_FAIL;  
else  
{  
hr=disp->QueryInterface(&pElem);  
}  
if   (SUCCEEDED(hr)&&   pElem   !=   NULL)  
{  
//  
BSTR   bstrhtml;  
pElem->get_outerHTML(&bstrhtml);  
CString   str(bstrhtml);  
AfxMessageBox(str);  
pElem->click();  
pElem->Release();  
}  
pColl->Release();  
}  
}  
   
}  
}  
   
}  
else   {  
AfxMessageBox("Shell   Windows   interface   is   not   avilable");  
}  
CoUninitialize();  
}

原创粉丝点击