用HOOK钩住浏览器窗口,然后监听edit 栏中的变化

解决方案 »

  1.   

    要是当前的浏览页在一个框架里呢??edit栏里就没有当前的URL了。那怎么办?
      

  2.   

    问得好,解决后希望能传告一声?
           
                    ***********************
                    * [email protected] *
                    ***********************
      

  3.   

    回复人:Jujus(2000-9-11 18:36:00)  
    hwnd=FindWindowEx(0,0,"IEFrame",NULL);//找到IE主窗口
    hwnd=FindWindowEx(hwnd,0,"WorkerA",NULL);
    hwnd=FindWindowEx(hwnd,0,"RebarWindow32",NULL);
    .......
    hwnd=FindWindowEx(hwnd,0,"Edit",NULL);
    SendMessage(hwnd,WM_GETTEXT,255,buf);//buf是存储地址栏的文本
    98下IE弹出的子窗口类是CabinetWClass,同样的做法
    nt下在IEFrame的WorkerW的Re......
      

  4.   

    这样得到的仍然是主框架的URL啊。要是当前的浏览页在一个框架里呢??edit栏里就没有当前的URL了。那怎么办? 
      

  5.   

    如果是给予MFC的ACTIVVEX CONTROL,
    IOleClientSite * pClientSite=GetClientSite();
    IServiceProvider *pISP;
    IWebBrowser2 * pIWebBrowser2;
    pClientSite->QueryInterface(IID_IServiceProvider,
                              (void **)&pISP);
    pISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2,
         (void **)&pIWebBrowser2); 
    BSTR bstrUrl;
    pIWebBrowser2->get_LocationURL(&bstrUrl);
    //SetWindowText(_bstr_t(bstrUrl));
    strText=(char*)_bstr_t(bstrUrl);
    InvalidateControl();
    pIWebBrowser2->Release();
    pISP->Release();