先要编一软件,要先得到当前ie内的地址,然后判断是否可以访问,如果不允许访问的话,则指向指定的网址,请大家帮忙想想

解决方案 »

  1.   

    void CTestDlg::OnButton1() 
    {
       HWND hIE=::FindWindow("IEFRAME",0); //获得第一个IE窗口
       HWND hbegin=hIE; //记录下来
       bool bnext=false;
       while(hIE)
      {
         TCHAR bb[200];
         //获取标题
         ::SendMessage(hIE,WM_GETTEXT,200,(LPARAM)bb); 
         CString ss(bb);
         //注意:explorer也是使用的IE窗口,也含有地址栏,判断是不是正在浏览网页的真正IE窗口
         if(ss.Find("Microsoft Internet Explorer")>0)  
         //一般情况下这样判断是可以的,除非你的IE被别人恶意修改了,呵呵 
         {
    bool bfind=false;

    HWND hSub=::FindWindowEx(hIE,0,_T("WorkerW"),0);//查找子窗口
    while(hSub && !bfind)
    {
        HWND hss=::FindWindowEx(hSub,0,_T("ReBarWindow32"),0);
        while(hss && !bfind)
       {
    //找到包含地址栏的窗口,取地址
    HWND hs3=::FindWindowEx(hss,0,"ComboBoxEx32",0);

    if(hs3)
    {
    bfind=true;
    ::SendMessage(hs3,WM_GETTEXT,200,(LPARAM)bb);
    //::GetWindowText(hs3,bb,200);
    AfxMessageBox(bb);
    break;
    }
       }
    hSub=::FindWindowEx(hIE,hSub,_T("RebarWindow32"),0);
    }
         }
         hIE=::GetNextWindow(hIE,GW_HWNDNEXT);//按照z-序向下找
         //如果已经到最下边了,从hbegin开始向上找
         if(!hIE && !bnext)
         {
    bnext=true;
    hIE=::GetNextWindow(hbegin,GW_HWNDPREV);
          }
       }
    }