我有一个问题想请教大家,用VC程序如何获取当前网页的地址呢?

解决方案 »

  1.   

    是想获取IE地址栏中的网址吗?BHO
      

  2.   

    用FindWindow吧,不过只能获取IE的网址例子:
    HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
    if(hwnd)
    {
    HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
    HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
    HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
    HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
    HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);char sz[255];
    ::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
    AfxMessageBox(sz);
    }
    }
      

  3.   

    你要浏览器显示的地址?用Spy++找句柄吧
      

  4.   

    回复于:2012-10-18 18:45:28用FindWindow吧,不过只能获取IE的网址例子:
    HWND hwnd=::FindWindow(_T("IEFrame"),NULL);
    if(hwnd)
    {
    HWND hwnd2=::FindWindowEx(hwnd,NULL,_T("WorkerW"),NULL);
    HWND hwnd3=::FindWindowEx(hwnd2,NULL,_T("ReBarWindow32"),NULL);
    HWND hwnd4=::FindWindowEx(hwnd3,NULL,_T("ComboBoxEx32"),NULL);
    HWND hwnd5=::FindWindowEx(hwnd4,NULL,_T("ComboBox"),NULL);
    HWND hwnd6=::FindWindowEx(hwnd5,NULL,_T("Edit"),NULL);char sz[255];
    ::SendMessage(hwnd6,WM_GETTEXT,255,(LPARAM)sz);
    AfxMessageBox(sz);
    }

      

  5.   

    就是浏览器地址栏中的网址,我用VS自带的spy++没有获取到,我试试楼上的方法,谢谢大家。
      

  6.   

    我试过了楼上的办法,WINDOWS IE还可以获取到句柄,但其他的浏览器,360之类的都获取不到句柄,更别说内容了。能不能从网络层抓包之类的获取呢?浏览器打开网页肯定的向服务器发送请求包啊?或者域名解析?
      

  7.   

    关键是怎么获得地址栏的窗口句柄,而且这样效率会有影响吗?我听说有个XP下可以通过防火墙钩子,WIN7下可以用TDI,但我都不知道怎么用。希望大侠们关注。