我的意思就是:如果我这么调用:
this->Navigate2("c:\\aaa.html");
而在c盘下根本没有aaa.html这个页面,我如何判断?

解决方案 »

  1.   

    如果Navigate2的结果是“网页无法显示...”那就是没有的 ;(
    如果只是显示本机的文件可以通过判断该文件是否存在CFile cf;
    try{
      cf.Open("c:\\aaa.htm",CFile::modeRead);
    }
    catch(CFileException *e)
    {
       AfxMessageBox(e->strError);//好象是这个,你自己看看,我现在手边没vc
       e->Delete();
       return false;//如果该文件不能正常打开,则返回
    }
    cf.Close();Navigate2("c:\\aaa.htm",NULL,NULL,NULL);
      

  2.   

    Navigate2方法实际上是根据采用的协议来处理的,比如File协议,http协议,Res 协议.
    对于远程的http协议,它会向远程的Web服务器发送http请求(Post/Get).如果请求的网页不存在.就会返回4xx的应答码.
      你可以采用VS.NET中的microsoft Application Center Test进行测试,跟踪录制的结果.
    由于你是采用Internet Explorer(Web Browser)自动化服务实现的.在IWebBrowser组件接口中也应提供了查看响应的状态码的方法和属性.   如果你采用了XmlHttp或者其他方法(Internet API),ATL Server手工发送http请求,处理可能会更简单.
        其实你完全可以根据Navigate2方法的返回值判断导航是否成功.
      

  3.   

    哦,明白了,我回去试一下,看看Navigate2返回的是什么,然后做出判断!