光头老道 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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料