Outils pour utilisateurs

Outils du site


windows:script_captures_ecran_vers_jpeg

Ceci est une ancienne révision du document !


Revenir au sommaire

Script pour automatiser des captures d'écran et les enregistrer en JPEG

Ce script PowerShell permet d'automatiser la capture d'écran puis de l'enregistrer vers un fichier au format JPEG.

[CmdletBinding()] Param(
    [Parameter(Mandatory=$True)]
    [Int32] $NumberOfPages
)
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName System.Windows.Forms 
 
[String] $repertoire = (Get-Item -Path ".\").FullName
[Int32] $origineX = 210
[Int32] $origineY = 128
[Int32] $largeurCapture = 1245
[Int32] $hauteurCapture = 880
[Boolean] $premierePage = $True
 
Clear-Host
 
$wShell = New-Object -ComObject wscript.shell
$wShell.AppActivate("Firefox") | Out-Null
$dateDebut = (Get-Date)
 
for ($i=1; $i -le $NumberOfPages; $i++) {
    [String] $nomFichier = "Capture_"
    $nomFichier += Get-Date -Format "yyyy-MM-dd_HH-mm-ss-fff"
    $nomFichier += ".jpg"
    [String] $cheminComplet = (Join-Path $repertoire $nomFichier)
 
    $dimensionsImage = New-Object System.Drawing.Size($largeurCapture, $hauteurCapture)
    $pointDepart = New-Object System.Drawing.Point($origineX, $origineY)
    $captureEcran = New-Object System.Drawing.Bitmap($largeurCapture, $hauteurCapture)
    $objetGraphique = [System.Drawing.Graphics]::FromImage($captureEcran)
    $objetGraphique.PageUnit = [System.Drawing.GraphicsUnit]::Pixel
    $objetGraphique.CopyFromScreen($pointDepart, [System.Drawing.Point]::Empty, $dimensionsImage)
 
    $rectanglePremierePage = New-Object System.Drawing.Rectangle 830, 50, 110, 470
    $rectangleToutesPages = New-Object System.Drawing.Rectangle 0, 530, 40, 350
    $pinceauRectangle = New-Object System.Drawing.SolidBrush([System.Drawing.Color]::FromArgb(255, 255, 255, 255))
    if ($premierePage -eq $True) {
        $objetGraphique.FillRectangle($pinceauRectangle, $rectanglePremierePage)
        $premierePage = $False
    }
    $objetGraphique.FillRectangle($pinceauRectangle, $rectangleToutesPages)
    $objetGraphique.Dispose()
    $captureEcran.RotateFlip("Rotate90FlipNone")
    $captureEcran.Save($cheminComplet, [System.Drawing.Imaging.ImageFormat]::Jpeg)
    $captureEcran.Dispose()
    Write-Host ("Capture " + $i + " sur " + $NumberOfPages + " effectuée")
    $wShell.AppActivate("Firefox") | Out-Null
    Start-Sleep -Milliseconds 100
    $wShell.SendKeys("{RIGHT}")
    Start-Sleep -Milliseconds 300
}
windows/script_captures_ecran_vers_jpeg.1520093776.txt.gz · Dernière modification: 2018/03/03 17:16 de luc