IE里web画面内容可以用IHTMLDocumnet2取得,弹出的MessageBox内容怎么取?另外怎么控制它?例如自动按OK,YES,NO等等。

解决方案 »

  1.   

    应该是调用系统的MessageBox的,看看用IHTMLDialog 能不能获得。或者使用钩子来获得弹出的窗口,进行判断
      

  2.   

    try to install WH_CBT hook catch the messagebox create event
      

  3.   

    用钩子的画我怎么知道这是web画面弹出来的messagebox啊?
    另外是什么东东?
      

  4.   

    你意思是不是用FindWindow取到IE窗口,然后用WH_CBT hook来取得这个IE窗口弹出MessageBox的事件?然后再用FindWindow,GetWindowText取得MessageBox的内容?
    有没有WH_CBT hook的简单例子?另外怎么让程序自动点击OK按钮呢?谢谢!
      

  5.   

    使用IDocHostShowUI接口
    IDocHostShowUI::ShowMessageCalled by IE4/MSHTML when it needs to display a message box. Return Values: S_OK  Host displayed its UI. IE4/MSHTML will not display its message box.  
    S_FALSE  Host did not display its UI. IE4/MSHTML will display its message box.  
      

  6.   

    可以取的窗口的类名来判断是否为messageBox
    使用SendMessage or PostMessage发送消息实现单几按钮操作
      

  7.   

    IE不知道怎么做,如果是CHtmlView的话,可以在COleControlSite继承的类CDocHostSite中声明,截获MessageBox消息
    // IDocHostShowUI
    protected:
    BEGIN_INTERFACE_PART(DocHostShowUI, IDocHostShowUI)
    INIT_INTERFACE_PART(CDocHostSite, DocHostShowUI)
    STDMETHOD(ShowHelp)(
    /* [in ] */ HWND hwnd,
    /* [in ] */ LPOLESTR pszHelpFile,
    /* [in ] */ UINT uCommand,
    /* [in ] */ DWORD dwData,
    /* [in ] */ POINT ptMouse,
    /* [out] */ IDispatch __RPC_FAR *pDispatchObjectHit);
    STDMETHOD(ShowMessage)(
    /* [in ] */ HWND hwnd,
    /* [in ] */ LPOLESTR lpstrText,
    /* [in ] */ LPOLESTR lpstrCaption,// MessageBox的内容
    /* [in ] */ DWORD dwType,
    /* [in ] */ LPOLESTR lpstrHelpFile,
    /* [in ] */ DWORD dwHelpContext,
    /* [out] */ LRESULT __RPC_FAR *plResult);
    END_INTERFACE_PART(DocHostShowUI)
      

  8.   

    控制IE的话可以用ICustomDoc::SetUIHandler挂接自己的IDocHostShowUI实现