用下面代码可以获得ie地址栏的内容 
       HWND   handle=0;     
//通过一系列的FindWindowEx找到地址栏的编辑框句柄,窗口的类名可通过WINSIGHT32找到     
handle=::FindWindowEx(handle,0,"IEFrame",NULL);     
handle=::FindWindowEx(handle,0,"Workerw",NULL);     
handle=::FindWindowEx(handle,0,"ReBarWindow32",NULL);     
handle=::FindWindowEx(handle,0,"ComboBoxEx32",NULL);     
handle=::FindWindowEx(handle,0,"ComboBox",NULL);     
handle=::FindWindowEx(handle,0,"Edit",NULL);    
if (handle==NULL) {
AfxMessageBox("NO");
}
//取得URL的长度     
int   i= ::SendMessage(   handle,  WM_GETTEXTLENGTH, 0,  0       );   
tem=new   char[i];    

//取回URL并显示     
::SendMessage(handle,WM_GETTEXT,i+1,long(tem)); 
    CString s;
s.Format("%s",tem);

AfxMessageBox(s);
但是我想获得登陆时当前url的html代码,点击链接后当前页面的url并不出现在地址栏,登陆前后地址栏的url不变
网上查不到,请大家指教,多谢了

解决方案 »

  1.   

    1.写一个BHO,这样会方便一点,获取IWebBrowser2接口,再获取IHTMLDocument
    2.或者做一个全局钩子去HOOK IE窗口,例如WH_CALLWNDPROC,然后在这个钩子函数里去找到Edit框,再获取URL,这样你点击其他连接,就能随时变化的得到URL了
      

  2.   

    4楼大哥,我是蔡鸟,说实话没听说过BHO,hook听过,没接触过,您若有时间,给我个例子,[email protected],
    没时间就算了,同样谢谢各位。
      

  3.   

    你要找的不是地址栏,而是视图CHtmlView 的指针,然后调用GetLocalURL()函数获取url
      

  4.   

    http://www.vckbase.com/document/viewdoc/?id=621参考一下这个