Abra o IE maximizada a partir do script PowerShell?

votos
2

Perdoe-me se isso é muito simples uma pergunta, mas eu não estou achando nada nos arquivos de ajuda ou on-line até agora sobre fazer isso. Estou abrindo uma nova janela do navegador para testar o recurso de login / logout de um aplicativo baseado na web, mas eu quero abrir a janela do IE no modo maximizado. Eu poderia definir o tamanho como:

$ Ie.height = 1024 $ ie.width - 768

Mas há uma palavra-chave ou qualquer coisa que eu posso usar apenas abri-lo maximizada automaticamente ou que eu preciso para consultar o tamanho da tela em primeiro lugar e, em seguida, preencha os valores dessa consulta?

/ mate

Publicado 27/08/2009 em 01:44
fonte usuário
Em outras línguas...                            


4 respostas

votos
4

(New-object -com wscript.shell) .run ( "URL", 3)

Respondeu 27/08/2009 em 13:07
fonte usuário

votos
3

Resolveu o problema de começar IE maximizada com os seguintes:

Function maxIE
{
param($ie)
$asm = [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

    $screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
    $ie.Width = $screen.width
    $ie.Height =$screen.height
    $ie.Top =  0
    $ie.Left = 0
}


cls
$ie = new-object -com "InternetExplorer.Application"
$ie.visible = $true
maxIE $ie
while ($ie.busy) {sleep -milliseconds 50}
$ie.navigate("http://www.google.com")
Respondeu 27/05/2013 em 22:16
fonte usuário

votos
1

Eu não poderia obter qualquer resposta específica para o trabalho, mas fez uma combinação de trabalhar. A ordem em que estes são chamados é importante senão ele não funciona.

Exemplo completa:

$ie = New-Object -Com "InternetExplorer.Application"
$urls = @("http://www.google.com","http://www.yahoo.com")
$ie.Visible = $true
CLS
write-output "Loading pages now..."
#Maximize IE window
$asm = [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$ie.height = $screen.height
#Open webpages
foreach ($link in $urls) {
   $ie.Navigate2($link, 0x1000) 
}
#close first blank tab
$sa = New-Object -ComObject Shell.Application
$tab = $sa.windows() | Where {$_.Name -match 'Internet Explorer' -and     $_.LocationName -eq ''}
$tab.quit()
Respondeu 31/03/2016 em 18:42
fonte usuário

votos
1

Se você tiver as Extensões de Comunidade do PowerShell 1.2 (PSCX) instalado no PowerShell 2.0, tenho verificado que isso funciona:

Pscx\Start-Process IExplore.exe; Start-Sleep 3; $hwnd = Get-ForegroundWindow
$sig = @'
[DllImport("user32.dll")] 
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@
Add-Type -MemberDefinition $sig -name NativeMethods -namespace Win32
[Win32.NativeMethods]::ShowWindowAsync($hwnd, 3)

É um pouco arriscado, porque ele está usando uma espera (start-sleep) de 3 segundos para esperar IE para abrir e, em seguida, ele usa um cmdlet PSCX para obter o identificador de janela da janela em primeiro plano. Se você só tem uma instância de IExplore corrida, então você pode usar isso para obter esse punho:

@(Get-Process IExplore)[0].MainWindowHandle

PowerShell 2.0 é necessário para o apoio Add-Type que nos permite ligar para a API Win32.

BTW de um rápido Bing procurar parece que ficando IE para iniciar maximizada é um problema bastante comum. Por exemplo, com Start-Process pode especificar -WindowStyle maximizado, mas o IE não honrar isso.

Respondeu 27/08/2009 em 02:09
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more