none
如何判断IE的实例是否存在并有效? RRS feed

  • 问题

  • 用下面的代码实例化了一个IE,用于访问网页:

    public SHDocVw.InternetExplorer myIE = new SHDocVw.InternetExplorer();
    newsReader.myIE.Navigate("http://www.baidu.com");
    
    

    之后,代码在对myIE操作之前,需要先判断用户是否已经将myIE关掉了。我使用的是if(myIE!=null)的方法,但是调试发现这个方法是无效的!当用户关掉myIE后,myIE并不为空。什么原因呢?正确的方法应该是怎样的?谢谢指点!

    2011年10月20日 6:57

答案

  • 用 FindWindow(),然后指定 WindowClass 为 "ie_frame",没记错的话是这个名字。

    还有一种办法是可以判断 Process 列表有没有 iexplore.exe,不过这个比较山寨。不推荐。


    Mark Zhou
    • 已标记为答案 JSHZP 2011年10月21日 9:34
    2011年10月20日 8:12
  • 用IWebBrowser2::PutProperty 设置一个暗号,然后在BHO里面判断是否有这个暗号。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 JSHZP 2011年10月21日 9:34
    2011年10月20日 23:07
    版主

全部回复

  • 用 FindWindow(),然后指定 WindowClass 为 "ie_frame",没记错的话是这个名字。

    还有一种办法是可以判断 Process 列表有没有 iexplore.exe,不过这个比较山寨。不推荐。


    Mark Zhou
    • 已标记为答案 JSHZP 2011年10月21日 9:34
    2011年10月20日 8:12
  • 用IWebBrowser2::PutProperty 设置一个暗号,然后在BHO里面判断是否有这个暗号。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 JSHZP 2011年10月21日 9:34
    2011年10月20日 23:07
    版主