セカンドモニタでも矩形選択スクリーンショットを簡単にJPG保存できる!
業務上、モニタに表示されたある部分をJPG画像等に保存しておきたいことは良くある。
今までは、定番の画面キャプチャーツール「WinShot」を長く愛用していた。
WinShotは実に使い勝手の良いツールであったが、唯一の欠点は2台のマルチモニタで使っている際、メインモニタでしか機能せず、セカンドモニタで操作してもキャプチャ保存できなかった。。
なので、セカンドモニタ側で作業していたウィンドを一端メインモニタ側に移動させ、WinShotでキャプチャする、、という手間があった。。
Windows標準機能[Win]+[Shift]+[S]と自作のPowerShellスクリプトで実現!
この方法は、以下の二つのコマンドで実現する。
(1) Windows標準機能[Win]+[Shift]+[S]でクリップボードに保存。
(2) 自作のPowerShellスクリプトでJPGファイルに保存。
(1) Windows標準機能[Win]+[Shift]+[S]でクリップボードに保存
参考:https://atmarkit.itmedia.co.jp/ait/articles/2203/10/news021.html
Windows標準機能で、矩形選択した範囲をクリップボードに保存する機能があった!(ワタシが知らなかっただけ…orz)
・[Win]+[Shift]+[S]を押すと、ウィンド全体がダークになり上部に下記アイコンが表示されると同時に「+」のポインタが表示される。
・画面キャプチャー保存したい範囲をドラッグ選択する → クリップボードに保存される。
※ちなみに、この状態で 例えば「ペイント」などの画像ソフトで貼り付けることができる。
(2) 自作のPowerShellスクリプトでJPGファイルに保存
参考:https://tsuredurediary.com/archives/windows-clip-board-image-save.html
クリップボードを、画像としてファイルに保存するPowerShellスクリプトを自作する。
・テキストエディタ(例「メモ帳」など)で、以下のスクリプトを記述し、拡張子「.ps1」で保存する。(今回はファイル名「clipboard_save.ps1」とした)
Add-Type -AssemblyName System.Windows.Forms
If ([Windows.Forms.Clipboard]::ContainsImage() -eq $True) {
$Image = [Windows.Forms.Clipboard]::GetImage()
$FilePath = “C:\Users\[ユーザー名]\Desktop”
$FileName = (Get-Date -Format “yyyyMMdd_HHmmss“) + “.jpg”
$ImagePath = Join-Path $FilePath $FileName
$Image.Save($ImagePath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
}
※「$FilePath」で、保存するフォルダーのパスを記述。
※「$FileName」のファイル名は任意。(例:上記は現在時刻「年月日_時分秒.jpg」で保存するように指定)
・上記スクリプト「clipboard_save.ps1」を起動するショートカット((*1)下記コマンド)を作成。
powershell -ExecutionPolicy RemoteSigned -windowstyle hidden -File [作成したスクリプトファイルのフルパス]
※上記冒頭の「powershell」は、ひょっとするとパスをちゃんと指定しないと動作しない可能性もあります。
その際は「powershell.exe」のフルパスを記載してください。
例)私のPCでは > C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
・ショートカットの作成方法
・デスクトップ上で右クリック → 新規作成 → ショートカット
・「ショートカットの作成」ウィンドの「項目の場所を入力してください」に、上記コマンド(*1)を貼り付ける。
このショートカットをダブルクリックすると、クリップボードの内容がJPG画像として指定したフォルダに保存される!!
ホームページ制作のこと、ホームページの運営でわからないことや困っていることがありましたら、「株式会社アットライズ」までお気軽にご相談ください。
株式会社アットライズのホームページはこちら