Otevřený IE maximalizována z PowerShell skriptu?

hlasů
2

Omluvte mě, jestli je to příliš jednoduchá otázka, ale já nemůže najít nic v souborech nápovědy nebo on-line, pokud o to udělat. Jsem otevírá nové okno prohlížeče pro testování funkce přihlášení / odhlášení z webové aplikace založené, ale chci otevřít okno IE v maximalizované režimu. Mohl bych nastavit velikost jako:

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

Ale tam je klíčové slovo nebo cokoli, co mohu použít jen otevřít ho maximalizována automaticky nebo se musím nejprve dotaz na velikost obrazovky a potom vyplňte hodnoty z tohoto dotazu?

/ mat

Položena 27/08/2009 v 01:44
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
4

(New-objekt -COM wscript.shell) .Servopohon ( "url", 3)

Odpovězeno 27/08/2009 v 13:07
zdroj uživatelem

hlasů
3

Vyřešil problém počínaje IE maximalizována následující:

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")
Odpovězeno 27/05/2013 v 22:16
zdroj uživatelem

hlasů
1

Nemohl jsem se dostat nějakou konkrétní odpověď na práci, ale dělal dostat kombinace do práce. Pořadí, ve kterém se tyto nazývají je důležité, jinak to nefunguje.

Plná Příklad:

$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()
Odpovězeno 31/03/2016 v 18:42
zdroj uživatelem

hlasů
1

Pokud máte PowerShell Společenství Extensions 1.2 (PSCX) nainstalován na PowerShell 2.0, jsem si ověřil, že to funguje:

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)

Je to trochu riskantní, protože se používá čekat (start-spánku) 3 vteřiny čekat na IE otevřít a pak používá PSCX rutinu získat popisovač okna v popředí okna. Pokud máte pouze jednu instanci IExplore běhu pak můžete použít tento dostat, že rukojeť:

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

PowerShell 2.0 pro podporu Add-Type, který nám umožňuje volat až do Win32 API nutná.

BTW z rychlého vyhledávání Bing se zdá, že dostat IE ke spuštění maximalizované je poměrně častým problémem. Například u počátečního procesu můžete určit -WindowStyle maximalizována ale IE nectí to.

Odpovězeno 27/08/2009 v 02:09
zdroj uživatelem

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