デスクトップに "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)