デスクトップに "clip.png" として保存する例
Add-Type -AssemblyName System.Windows.Forms
$clipboardImage = [Windows.Forms.Clipboard]::GetImage()
if ($clipboardImage -ne $null)
{
$outputFilePath = Join-Path (Join-Path $Env:UserProfile "Desktop") "clip.png"
$clipboardImage.Save($outputFilePath)
}
解説
-
まず、
System.Windows.Forms
をAdd-Type
する。Add-Type -AssemblyName System.Windows.Forms
-
次に、クリップボードの画像を
[Windows.Forms.Clipboard]::GetImage()
で取得する(Bitmap
型で返ってくる)。$clipboardImage = [Windows.Forms.Clipboard]::GetImage()
- ここでの注意点:
-
クリップボードに画像が入っていないと、
[Windows.Forms.Clipboard]::GetImage()
は$null
を返す。- このため、この例では
$null
かどうかのチェックを入れている。
- このため、この例では
-
追記: 画像の存在判定は
[Windows.Forms.Clipboard]::ContainsImage()
でも可能。if ([Windows.Forms.Clipboard]::ContainsImage()) { $clipboardImage = [Windows.Forms.Clipboard]::GetImage() ... }
-
- ここでの注意点:
-
最後に、これを
Save()
する。$outputFilePath = Join-Path (Join-Path $Env:UserProfile "Desktop") "clip.png" $clipboardImage.Save($outputFilePath)