У меня есть запрос на получение скриншота иконок пользователей на рабочем столе. Я могу использовать Powershell для захвата, но сначала нужно очистить экран, сделать снимок, а затем восстановить экран. Клавиши Windows+D »сделают это, но клавиша Windows не является опцией для имитации в Powershell. Есть ли другой способ сделать снимок экрана рабочего стола?

Большое спасибо!

2 ответа2

2

Вот решение, которое также делает снимок экрана. Я использую это в своих сценариях, где мне нужно сделать снимок экрана. зачем автоматизировать только часть задачи, когда вы также можете автоматизировать все ;-) верно?

# 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()
1

Существует пример здесь .

Я натолкнулся на этот небольшой совет, изучая com-объект shell.application. Он имеет другие полезные функции, такие как undominimizeall, каскадные окна и многие другие функции проводника.

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

Вы также можете отменить сворачивание всех окон, используя приведенный ниже код.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .