在VB6中创建不是子进程的InternetExplorer对象

时间:2017-07-07 22:35:33

标签: internet-explorer vb6

我们正在创建一个像这样的InternetExplorer窗口:

Dim Browser As InternetExplorer
Set Browser = CreateObject("InternetExplorer.Application")

我们注意到,如果已经打开了外部IE窗口,那么在我们的应用程序中创建的浏览器将被创建为该IE进程的子进程。如果没有打开IE窗口,那么我们的应用程序创建的浏览器就是它自己的父进程。

我们需要确保我们的应用程序创建的浏览器始终是顶级父进程,而不是另一个IE进程的子进程。有人知道这样做的方法吗?

要添加更多信息,第一张图片会显示我们出现的IE流程:

  1. 首先启动我们的应用程序,然后创建一个浏览器窗口。
  2. 然后从外部启动另一个浏览器(IE)。
  3. 所以有两个浏览器在运行。每个进程都有两个进程(* 32进程是其他进程的子进程)。App starts first

    然后,如果我们按照其他顺序做事:

    1. 启动外部浏览器。
    2. 启动我们的应用程序,然后创建另一个浏览器窗口。
    3. 图片看起来像这样: External browser starts first

      在这种情况下,我们的应用程序创建的浏览器已创建为第一个(外部)浏览器的子进程。这是我们需要避免的。

1 个答案:

答案 0 :(得分:0)

首先,当您使用CreateObject(...)时,您应该使用:

Dim Browser As Object ' not As InternetExplorer

其次,答案不是,因为它是你自己创建子进程(浏览器)的应用程序。

如果您想要一个顶级流程,那么请不要使用您的应用,但在这种情况下,您无法管理'这个过程,来自你的申请。