光头老道 2016-03-01 13:22 采纳率: 0%
浏览 2981

C++ Navigate2()怎么不能跳转到指定的网址

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(),其余函数都没变

  • 写回答

3条回答

  • devmiao 2016-03-01 13:41
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划