2016-05-02 3 views
-1

Удивление, если можно выбрать окно 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 
+0

Что вы подразумеваете под "работать с"? Вы хотите сфокусироваться на новом окне или хотите использовать comobjects 'InternetExplorer.Application' для его управления? –

+0

Я хочу использовать comobject 'InternetExplorer.Application' для управления новым окном – Quanda

ответ

0

Вы можете получить ComObject 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") 
+0

Спасибо, к сожалению, я не могу заставить свой код работать так, как ожидалось. Добавление моего кода в исходное сообщение. – Quanda

+0

Вы пытались использовать «LocationName» (название сайта) или «LocationURL» (если вы знаете части URL, которые уникальны для того, который вам нужен)? Затем вы можете пропустить hwnd-search ++ все вместе. Ex. см. обновленный ответ –

+0

Да, я тоже это пробовал, и он ничего не возвращает – Quanda

Смежные вопросы