如何实现让IE只允许上指定的URL,如上了非指定的URL,则关闭或强行让它上指定的URL。谢谢!!!!

解决方案 »

  1.   

    将IE的安全设置到最高,然后将可访问的URL加入到信任站点中就行了。这种方法在NT域中最有效
      

  2.   

    http://blog.csdn.net/gjd111686/archive/2004/07/27/53294.aspx
      

  3.   

    STDMETHODIMP CIEPlugCom::Invoke(DISPID dispidMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pvarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
    {
     USES_CONVERSION;
     
     if(!pDispParams)
      return E_INVALIDARG;
     
     LPOLESTR lpURL=NULL;
     m_spWebBrowser2->get_LocationURL(&lpURL); 
     switch(dispidMember)
     {
     case DISPID_BEFORENAVIGATE2:
      char *pURL;
      if(pDispParams->cArgs >=5&&pDispParams->rgvarg[5].vt==(VT_BYREF|VT_VARIANT))
      {
                CComVariant varURL(*pDispParams->rgvarg[5].pvarVal);
                varURL.ChangeType(VT_BSTR);
       //转化要访问的网址为char *型
       pURL=OLE2A(varURL.bstrVal);
      }
      //如果正要访问的网址为要被拦截的,则停止  
      //IDS_URL
      if(strstr(pURL,"microsoft.com")!=NULL)
      {
                *pDispParams->rgvarg[0].pboolVal=TRUE;
          MessageBox(NULL,"当前系统禁止浏览该页","警告",MB_ICONSTOP);
       return S_OK;
      }
      break;
     case DISPID_NAVIGATECOMPLETE2:
      break;
     case DISPID_DOCUMENTCOMPLETE:
      break;
     case DISPID_DOWNLOADBEGIN:
      break;
     case DISPID_DOWNLOADCOMPLETE:
      break;
     case DISPID_NEWWINDOW2:
      READYSTATE m_ReadyState;
            m_spWebBrowser2->get_ReadyState(&m_ReadyState);
            if(m_ReadyState!=READYSTATE_COMPLETE)
            {
                *pDispParams->rgvarg[0].pboolVal=TRUE;
                return S_OK;
            }
      else
      {
                *pDispParams->rgvarg[0].pboolVal=FALSE;
                return S_OK;
      }
         break;
     case DISPID_QUIT:
      break;
     default:
      break;
     }
     return S_OK;
    }
      

  4.   

    使用Browser Help Object(浏览器帮助程序对象),你Google一下.
    BHO可完全接管对IE的控制,Flashget等下载软件就这样监视IE中文件下载的.
      

  5.   

    VC++开发BHO插件——定制你的浏览器 
    http://blog.csdn.net/passants/articles/257773.aspx另外注意BHO只对IE有效
      

  6.   

    在beforenavigate事件中判断,可以该浏览的URL cancel掉。