void EnumIE(void)
{
::CoInitialize(NULL);//初始化com库
CComPtr spShellWin;
HRESULT hr=spShellWin.CoCreateInstance(CLSID_ShellWindows);
if (FAILED(hr))
{
return;
}
long nCount=0; //取得浏览器实例个数(Explorer和IExplorer)
spShellWin->get_Count(&nCount);
if (0==nCount)
{
return;
}
for(int i=0; i
{
CComPtr spDispIE;
hr=spShellWin->Item(CComVariant((long)i), &spDispIE);
if (FAILED(hr)) continue;
CComQIPtr<IWebBrowser2>spBrowser=spDispIE; //注意是IE浏览器
if (!spBrowser) continue;
spBrowser->put_Visible(true); //Commentout this line if you dont want the browser to be displayed
//Modify by jncao 2007-09-17
//*******************************************************************************
CString cIEUrl_Filter; //设置的URL(必须是此URL的网站才有效);
cIEUrl_Filter="https://w.seu.edu.cn/portal/index.html"; //设置过滤的网址
//*******************************************************************************
VARIANT var;
var.vt = VT_BSTR;
var.bstrVal=CComBSTR(cIEUrl_Filter);
hr=spBrowser->Navigate2(&var,NULL,NULL,NULL,NULL) ; //Open the URL page
if(FAILED(hr))
{
cout<<"Navigete2 Failed!!"<<endl;
return;
}
cout<<"good-1"<<endl;
//spBrowser->Navigate2(vaURL,null,null,null,null) ; //Open the URL page
CComPtr<IDispatch> spDispDoc;
hr=spBrowser->get_Document(&spDispDoc);
if (FAILED(hr)) continue;
CComQIPtr<IHTMLDocument2> spDocument2 =spDispDoc;
if (!spDocument2) continue;
EnumForm(spDocument2); //枚举所有的表单
cout<<"good0"<<endl;
//*******************************************************************************
//CString cIEUrl_Filter; //设置的URL(必须是此URL的网站才有效);
//cIEUrl_Filter="https://w.seu.edu.cn/portal/index.html"; //设置过滤的网址
//*******************************************************************************
/* CComBSTR IEUrl;
spBrowser->get_LocationURL(&IEUrl);
CString cIEUrl_Get; //从机器上取得的HTTP的完整的URL;
cIEUrl_Get=IEUrl;
cIEUrl_Get=cIEUrl_Get.Left(cIEUrl_Filter.GetLength()); //截取前面N位
if (cIEUrl_Get.Compare(cIEUrl_Filter)==0)
{
// 程序运行到此,已经找到了IHTMLDocument2的接口指针
EnumForm(spDocument2); //枚举所有的表单
} */
}
::CoUninitialize();
}
这个是我根据http://blog.csdn.net/fjssharpsword/article/details/6080572这个改写的函数EnumIE(),其余函数都没变