2014-12-03 3 views
2

Мой код:окно фокусировки IE в Powershell

$ie = new-object -com "InternetExplorer.Application" 
$ie.navigate("http://localhost") 
$ie.visible = $true 
$ie.fullscreen = $true 

Однако, после того, как весь экран, окно все еще появляется за на панели задач Windows. Когда я нажимаю на окно, чтобы настроить фокус, панель задач отстает и появляется, как я хочу. Как я могу сделать это программно? Спасибо!

ответ

3

Это было сложно ... Не так просто, как я думал.

Я закончил с использованием обманщика и добавлением сборки VB:

Add-Type -Assembly "Microsoft.VisualBasic" 

$ie = new-object -com "InternetExplorer.Application" 
$ie.navigate("http://localhost") 
$ie.visible = $true 
$ie.fullscreen = $true 
While ($ie.Busy) { Sleep -m 10 } 
$ieProc = Get-Process | ? { $_.MainWindowHandle -eq $ie.HWND } 
[Microsoft.VisualBasic.Interaction]::AppActivate($ieProc.Id) 
+1

$ т.е. не метод фокусировки, $ ie.document делает, так что $ ie.document.focus() будет правильное утверждение , однако это не выводит его на передний план, по крайней мере, на Windows 8.1. Вы просто видите, что IE мигает на панели задач ... –

+0

Спасибо Adil. Не так прямо, как я думал. – xXhRQ8sD2L7Z

+0

Да, я видел людей, использующих AppActivate VB или создающих оболочку и использующих это как оболочку для этого. Мне жаль, что с PowerShell это было проще. Вы могли бы также сделать: get-process iexplore, а затем фильтр –