powershell - simula o Windows-D para limpar e restaurar a tela

0

Eu tenho uma solicitação para obter uma captura de tela dos ícones da área de trabalho dos usuários. Eu posso usar o Powershell para capturar, mas preciso limpar a tela primeiro, tirar a foto e depois restaurar a tela. Teclas "Windows + D" vai fazer isso, mas a chave do Windows não é uma opção para simular no Powershell. Existe outra maneira de capturar uma imagem da área de trabalho?

Muito obrigado!

    
por JCauble 11.06.2016 / 09:44

2 respostas

2

aqui está uma solução que também leva a captura de tela. Eu estou usando isso em meus scripts, onde eu preciso fazer o screenshot de algo. por que automatizar apenas partes da tarefa, quando você também é capaz de automatizar tudo ;-), certo?

# Take Screenshot function - reads width and height from WMI, saves in outfile path
function Take-Screenshot([string]$outfile) 
{
    [int]$PrtScrnWidth = (gwmi Win32_VideoController).CurrentHorizontalResolution
    [int]$PrtScrnHeight = (gwmi Win32_VideoController).CurrentVerticalResolution
    $bounds = [Drawing.Rectangle]::FromLTRB(0, 0, $PrtScrnWidth, $PrtScrnHeight)
    $bmp = New-Object Drawing.Bitmap $bounds.width, $bounds.height
    $graphics = [Drawing.Graphics]::FromImage($bmp)
    $graphics.CopyFromScreen($bounds.Location, [Drawing.Point]::Empty, $bounds.size)
    $bmp.Save($outfile)
    $graphics.Dispose()
    $bmp.Dispose()
}

# Minimize all the Windows
$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()

#sleep to make sure not to screenshot while everything is still minimizing
sleep -s 2

# Take the Screenshot - choose your outfile path
Take-Screenshot -outfile C:\Batch\test4.png

# get your screen back
$shell.undominimizeall()
    
por 11.06.2016 / 12:48
1

Existe um exemplo aqui .

I came across this little tip while exploring shell.application com object. It has other useful functions like undominimizeall, cascade windows, and many other explorer functions.

$shell = New-Object -ComObject "Shell.Application"
$shell.minimizeall()

You can also undo minimize all windows by using below code.

$shell = New-Object -ComObject "Shell.Application"
$shell.undominimizeall()
    
por 11.06.2016 / 10:19

Tags