получить powershell для класса ie и во время теста пользовательского интерфейса сделать снимок экрана окна ie

Итак, я запускаю тест пользовательского интерфейса с помощью Power Shell.

Когда я получаю сообщение об ошибке, я хочу сделать снимок экрана только окна ie, это можно сделать с помощью alt print scrn

%{prtsc}

но для этого требуется только jpg активного окна.

Я попробовал это
$h = (Get-Process iexplore).MainWindowHandle SetForegroundWindow((Get-Process -name iexplore).MainWindowHandle) sleep -sec 2 $h = (Get-Process -id $pid).MainWindowHandle

Также большое спасибо за любую помощь в определении, т.е. ошибки.

function screenshot
{
    param(    
    [Switch]$OfWindow        
    )
    begin {
        Add-Type -AssemblyName System.Drawing
        $jpegCodec = [Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | 
            Where-Object { $_.FormatDescription -eq "JPEG" }
    }
    process {
        Start-Sleep -Milliseconds 250
        if ($OfWindow) { 
        [Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")        
        } else {
            [Windows.Forms.Sendkeys]::SendWait("{PrtSc}")        
        }

        Start-Sleep -Milliseconds 250
        $bitmap = [Windows.Forms.Clipboard]::GetImage()    
        $ep = New-Object Drawing.Imaging.EncoderParameters  
        $ep.Param[0] = New-Object Drawing.Imaging.EncoderParameter ([System.Drawing.Imaging.Encoder]::Quality, [long]100)  
        $screenCapturePathBase = "$pwd\ScreenCapture"
        $c = 0
        while (Test-Path "${screenCapturePathBase}${c}.jpg") {
            $c++}

        $bitmap.Save("${screenCapturePathBase}${c}.jpg", $jpegCodec, $ep)
    }
}

person Dennis Hayden    schedule 15.07.2011    source источник


Ответы (2)



Вы заботитесь о том, чтобы захватить весь экран без % :

Add-Type -Assembly System.Windows.Forms
Start-Sleep -seconds 1

## Capture the entire screen 
[System.Windows.Forms.Sendkeys]::SendWait("{PrtSc}") 

## Capture the current window 
[System.Windows.Forms.Sendkeys]::SendWait("%{PrtSc}")
person JPBlanc    schedule 17.07.2011
comment
Я надеюсь, что есть способ настроить сценарий для захвата только окна IE. если есть способ сделать окно IE текущим окном, которое будет работать - person Dennis Hayden; 19.07.2011