Открыть вкладку в существующем экземпляре 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.
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