如题,如果能的话有什么思路,请大神推荐下,比如说,BHO的dll能不能获取对话框程序中输入的网址进行拦截?

解决方案 »

  1.   

    BHO创建一个窗口,对话框可以通过SendMessage等发送数据给BHO
      

  2.   

    BHO - Browser Helper Object
    这字面意思就是浏览器辅助对象了,如果只是一般的对话框,那应该是不能监视得到这对话框的操作的。如果没有浏览器启动的话,那就应该不会加载这个组件了。当然你可以尝试下创建一个隐藏窗口来挂接一个Webbrowser控件,让其调用BHO,然后怎么交互都容易了
      

  3.   

    听了几位大侠的意见我添加了ATL对话框类在DLL实现类中有
    CTrackIE()
    {
    url=new char[256];
    memset(url,0,256);
    pcustom=new Ccustom_url(this);
    pcustom->DoModal ();
    }
    ~CTrackIE()
    {
    delete pcustom;
    delete []url;
    url=NULL;
    }
    //在对话框类中我添加了一个按钮事件
    LRESULT Ccustom_url::OnBnClickedButton1(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
    {
    // TODO: 在此添加控件通知处理程序代码
    strcpy(m_trackie->url,"www.baidu.com\0");

    return 0;
    }可一按按钮浏览器就崩溃了,测试后是strcpy处有错,可是,不知道为什么错了...
      

  4.   

    关闭对话框时提示expression:m_bModal没辙了,
      

  5.   

    能不能详细说下?不是很明白,同是一个DLL内怎么共享内存?
      

  6.   

    同一个dll?
    不是BHO和你的程序通信吗?
      

  7.   

    本来我把对话框也加到了BHO组件中,所以说在同一个DLL中,现在听了您的建议,另起一个进程,得到了想要的结果,谢谢了,使用共享内存解决了,虽然仍然不知道当初的bug在哪