Выберите окно IE с помощью HWND

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

Вот мой код:

$ie.Navigate("https://chaseloanmanager.chase.com/Chaselock/ViewOnlineGuide.aspx") # opens page in new window
while ($ie.Busy -eq $true){Start-Sleep -Seconds 2}

$childWindow = Get-Process | Where-Object {($_.ProcessName -eq 'iexplore')} | Get-ChildWindow | Where-Object {$_.ChildTitle -match 'Lending'} 
$childWindow.MainWindowHandle # gets HWND of new window

$shell = New-Object -ComObject Shell.Application
$ie3 = $shell.Windows() | Where-Object {$_.HWND -match $childWindow.MainWindowHandle} # does not find window

person Eric Furspan    schedule 02.05.2016    source источник
comment
Что вы имеете ввиду под работой? Вы хотите сфокусироваться на новом окне или хотите использовать InternetExplorer.Application comobjects для управления им?   -  person Frode F.    schedule 02.05.2016
comment
Я хочу использовать comobject InternetExplorer.Application для управления новым окном   -  person Eric Furspan    schedule 02.05.2016


Ответы (1)


Вы можете получить ком-объект IE, выполнив поиск Windows() в Shell.Application.

$shell = New-Object -ComObject Shell.Application

$ie = $shell.Windows() | Where-Object { $_.LocationURL -match 'Lending' }
#$ie = $shell.Windows() | Where-Object { $_.HWND -eq 2951084 }

$ie.Navigate("http://www.stackoverflow.com")
person Frode F.    schedule 02.05.2016
comment
Спасибо, к сожалению, я не могу заставить свой код работать должным образом. Добавляю свой код в исходный пост. - person Eric Furspan; 02.05.2016
comment
Пробовали ли вы использовать LocationName (название веб-сайта) или LocationURL (если вы знаете части URL, уникальные для нужного вам сайта)? Тогда вы можете вообще пропустить hwnd-search++. Бывший. см. обновленный ответ - person Frode F.; 02.05.2016
comment
Вы пробовали только $shell.windows()? . Вы можете найти, что искать. Если он отсутствует, то вам не повезло. - person Frode F.; 02.05.2016
comment
Да, поэтому, когда я просто использую $shell.windows(), ничего не возвращается в консоль. однако, когда я запрашиваю count, он возвращает 1. Странный... - person Eric Furspan; 02.05.2016