用VB.net应用程序控制Web浏览器

用VB.net应用程序控制Web浏览器,vb.net,process,Vb.net,Process,我想将internet explorer的单独实例打开到指定的网站。在它们打开后,我想在计时器上循环显示它们 我有以下代码,但无法切换到指定的IE进程: Dim rotatethrough As Boolean = True For i = 0 To ListBox1.Items.Count - 1 'I have a list box that contains the website URLs Dim Processname As New List(Of String

我想将internet explorer的单独实例打开到指定的网站。在它们打开后,我想在计时器上循环显示它们

我有以下代码,但无法切换到指定的IE进程:

Dim rotatethrough As Boolean = True
    For i = 0 To ListBox1.Items.Count - 1 'I have a list box that contains the website URLs
        Dim Processname As New List(Of String)
        Dim processnum(Environment.ProcessorCount) As Process
        processnum(i) = New Process
        processnum(i) = System.Diagnostics.Process.Start(ListBox1.Items(i)) 'start up seperate instances of IE for each website
    Next
    Do While rotatethrough = True
        For n = 0 To ListBox1.Items.Count - 1
            AppActivate(processnum(n).Id) 'activate the websites
            Threading.Thread.Sleep(1000)
        Next
    Loop
到目前为止,代码打开IE的单独实例,但在appactivate上失败,因为“对象引用未设置为对象的实例”。我曾尝试将IE创建为对象,但我不确定如何为相应的listbox项获取正确的进程ID


任何帮助都将是非常棒的,我似乎能解决这个问题。

您好,欢迎来到Stack Overflow!代码中有一些问题需要纠正。首先,
Environment.ProcessorCount
返回计算机上的处理器数量。这与当前正在运行的进程数不同。我认为您所追求的是
ListBox1.Items.Count-1
。其次,每次循环运行时,您都以名称
processnum
创建一个新数组,但您似乎已经在其他地方以相同的名称定义了另一个数组(前者可能是您提到的异常的原因)。如果要更改数组的大小,可以在循环之前使用。