Windowsでスクリーンキャプチャをする場合、昔はPrintScreenキーを使っていたけど、SnippingToolが追加されて範囲指定ができるようになった。そして最近のWindows10の機能で、SHIFT + Win + Sでのキャプチャ機能が追加された。これを押した後、即範囲指定をすれば選択領域がクリップボードに画像としてコピーされる。この機能が追加されてからスクリーンキャプチャはかなり手軽になった。
しかし、これをファイルに落とそうとすると、私はペイントを起動して貼り付けて名前をつけて保存している。もう長い間この方法を使っていたが、もうちょっと簡単になるのではと思い、また例によってググると、以下のページを見つけた。
Windowsクリップボードの画像をpngで保存 – 水玉製作所
上記の記事ではPowerShellを使って実現している。ここでは少し改造して、クリップボードに画像がない場合は何もせず、また画像はダウンロードフォルダに保存されるように変更して使用することにした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
@powershell -windowstyle hidden -NoProfile -ExecutionPolicy Unrestricted "&([ScriptBlock]::Create((cat -encoding utf8 \"%~f0\" | ? {$_.ReadCount -gt 2}) -join \"`n\"))" %* @exit /b Add-Type -AssemblyName System.Windows.Forms; [System.Drawing.Image]$clipboardImage = [Windows.Forms.Clipboard]::GetImage(); if ($clipboardImage -eq $null) { # クリップボードに画像がない場合は何もしない } if ($clipboardImage -ne $null) { # 名前をつけて、ダウンロードフォルダに保存 [String]$fileName = (New-Object -ComObject Shell.Application).NameSpace('shell:Downloads').Self.Path + "\" + (Get-Date).ToString("yyyyMMdd_HHmmss") + ".png"; $clipboardImage.Save($fileName); } |
これを、「ClipboardImage2File.bat」として保存し、実行すれば、クリップボードに画像がある場合はダウンロードフォルダにpng形式でファイル名に日付時間をつけて保存される。
この機能はワンタッチで実行したいので、以下の記事と同様の方法でホットキーに割り付けることにする。

TeamsのマイクオンオフをPAUSEキーで行う方法(修正あり)
(2024/5/20、Teamsの仕様変更に伴い、新しいスクリプトの記事を書きました「「TeamsのマイクオンオフをPAUSEキーで行う方法」で、Teamsの仕様変更が……」) Teamsで会議を行うときに、話をしないときは雑音防止のために...
TTBaseと「何でも起動」プラグインを使うのだが、今回はカナキーに割り付けてみた。いい感じで使えるようになった。
コメント