Ouvrez Internet Explorer maximisée à partir du script Powershell?

voix
2

Pardonnez-moi si cela est trop simple une question, mais je ne trouve rien dans les fichiers d'aide en ligne ou à ce jour en ce qui concerne le faire. J'ouvre une nouvelle fenêtre du navigateur pour tester la fonctionnalité de connexion / déconnexion d'une application basée sur le Web, mais je veux ouvrir la fenêtre IE en mode maximisé. Je pourrais définir la taille:

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

Mais est-il un mot-clé ou tout ce que je peux utiliser pour simplement l'ouvrir automatiquement maximisée ou aurais-je besoin d'interroger la taille de l'écran d'abord, puis remplir les valeurs de cette requête?

/mat

Créé 27/08/2009 à 01:44
source utilisateur
Dans d'autres langues...                            


5 réponses

voix
1

Si vous avez les extensions communautaires PowerShell 1.2 (PSCX) installé sur PowerShell 2.0, j'ai vérifié que cela fonctionne:

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)

Il est un peu casse-gueule parce qu'il utilise une attente (démarrage sommeil) de 3 secondes à attendre pour IE pour ouvrir, puis il utilise une applet de commande PSCX pour obtenir la poignée de fenêtre de la fenêtre de premier plan. Si vous ne disposez que d'une instance de fonctionnement IExplore alors vous pouvez l'utiliser pour obtenir cette poignée:

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

PowerShell 2.0 est requis pour le soutien Add-type qui nous permet d'appeler vers le bas à l'API Win32.

BTW d'un Bing de recherche rapide, il semble que l'obtention d'IE est un maximisé commencent problème assez commun. Par exemple, avec Start-Process vous pouvez spécifier -WindowStyle maximisée, mais IE ne respecte pas.

Créé 27/08/2009 à 02:09
source utilisateur

voix
4

(Nouveau-objet -com wscript.shell) .run ( "url", 3)

Créé 27/08/2009 à 13:07
source utilisateur

voix
3

Résolution du problème de démarrage IE maximisée avec ce qui suit:

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")
Créé 27/05/2013 à 22:16
source utilisateur

voix
1

Je ne pouvais pas obtenir une réponse spécifique au travail, mais il est devenu une combinaison de travail. L'ordre dans lequel ils sont appelés est important sinon il ne fonctionne pas.

Exemple complet:

$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()
Créé 31/03/2016 à 18:42
source utilisateur

voix
0
$URL="http://www.google.com/"
$IE=new-object -com internetexplorer.application
$IE.TheaterMode = $False
$IE.AddressBar = $True
$IE.StatusBar = $False
$IE.MenuBar = $True
$IE.FullScreen = $False
$IE.navigate2($URL)
$IE.visible = $True
#Magic happens below:
$SW_MAXIMIZE = 3
$sig = @'
[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
'@
Add-Type -MemberDefinition $sig -Name Functions -Namespace Win32

$hWnds = (Get-Process -Name "iexplore").MainWindowHandle
foreach ($hWnd in $hWnds){
[Win32.Functions]::ShowWindow($hWnd, $SW_MAXIMIZE)
}

... mais pour toutes fins utiles, définir simplement les paramètres

$IE.MenuBar = $True
$IE.AddressBar = $True
$IE.TheaterMode = $True

devrait être ce que vous finissez par utiliser au lieu de « magique ».

Créé 11/06/2019 à 19:05
source utilisateur

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