If ([System.Windows.Clipboard]::ContainsImage() -eq $True) {
$Image = [System.Windows.Clipboard]::GetImage();
$Bitmap = New-Object System.Windows.Media.Imaging.PngBitmapEncoder;
$Bitmap.Frames.Add([System.Windows.Media.Imaging.BitmapFrame]::Create($Image));
$FileName = "C:\Screenshot\" + (Get-Date -Format "yyyyMMddHHmmss") + ".png";
$Stream = New-Object System.IO.FileStream -ArgumentList $FileName, 'Create', 'Write'
$Bitmap.Save($Stream);
$Stream.Close();
[Console]::Beep(1000, 300)
}
Else {
[Console]::Beep(500, 300)
}
JPEGで保存するとき
$Bitmap = New-Object System.Windows.Media.Imaging.JpegBitmapEncoder;
$FileName = <中略> + ".jpg"
TIFFで保存するとき
$Bitmap = New-Object System.Windows.Media.Imaging.TiffBitmapEncoder;
$FileName = <中略> + ".tif"
BMPで保存するとき
$Bitmap = New-Object System.Windows.Media.Imaging.BmpBitmapEncoder;
$FileName = <中略> + ".bmp"
改訂版
(2016-12-10追記)
上の方法はPowerShell ISEの環境でしか実行できないので、コマンドプロンプトから実行する場合は以下の通り。
Add-Type -AssemblyName System.Drawing, System.Windows.Forms
If ([Windows.Forms.Clipboard]::ContainsImage() -eq $True) {
$FileName = "C:\Screenshot\" + (Get-Date -Format "yyyyMMddHHmmss") + ".png";
$Image = [Windows.Forms.Clipboard]::GetImage();
$Image.Save($FileName, [System.Drawing.Imaging.ImageFormat]::Png);
[Console]::Beep(1000, 300)
}
Else {
[Console]::Beep(500, 300)
}
- この記事で書かれている製品やソフトについて
- Windows10 Pro 64ビット
- PowerShell 5.1.14393.479