Открыть вкладку в существующем экземпляре IE



$ie = New-Object -com internetexplorer.application


Каждый раз, когда я открываю новый сайт с этим объектом(т. е. каждый раз, когда запускается скрипт), он открывается в новом окне IE, и я не хочу, чтобы он это делал. Я хочу, чтобы он был открыт в новой вкладке, но это тоже в ранее открытом окне IE. Я хочу повторно использовать этот объект, когда скрипт будет запущен в следующий раз. Я не хочу создавать новый объект



Итак, есть ли способ проверить наличие экземпляров internet explorer и повторно использовать его экземпляр ???



Я попробовал это в качестве решение:



Сначала необходимо присоединить к уже запущенному экземпляру Internet Explorer:



$ie = (New-Object -COM "Shell.Application").Windows() `
| ? { $_.Name -eq "Windows Internet Explorer" }


Затем вы переходите к новому URL-адресу. Где этот URL открыт управляется с помощью параметра Flags:



$ie.Navigate("http://www.google.com/", 2048)


Но я не могу вызвать метод navigate на этом вновь созданном объекте $ie.

583   3  

3 ответов:

Вы можете использовать Start-Process, чтобы открыть URL. Если окно браузера уже открыто, оно откроется как вкладка.

Start-Process 'http://www.microsoft.com'

Сначала необходимо присоединить к уже запущенному экземпляру Internet Explorer:

$ie = (New-Object -COM "Shell.Application").Windows() `
        | ? { $_.Name -eq "Windows Internet Explorer" }

Тогда Вы Navigate к новому URL-адресу. Где этот URL открыт управляется через Flags параметр:

$ie.Navigate("http://www.google.com/", 2048)

Edit: в случае, если запущено 2 или более экземпляров IE (дополнительные вкладки также считаются дополнительными экземплярами), перечисление вернет массив, поэтому вам нужно выбрать конкретный экземпляр из массива:

$ie[0].Navigate("http://www.google.com/", 2048)

Вы можете использовать это, если Internet Explorer не является вашим браузером по умолчанию:

Function Open-IETabs {
    param (
        [string[]]$Url
    )
    begin {
        $Ie = New-Object -ComObject InternetExplorer.Application
    }
    process {
        foreach ($Link in $Url) {
            $Ie.Navigate2($Link, 0x1000)
        }
    }
    end {
        $Ie.Visible = $true
    } 
}

Я нашел это на PowerShell.com

Comments

    Ничего не найдено.