クリップボード上の画像を一時フォルダに保存する

スクリプト

ブログやらTwitterやらに画像をアップロードするとき,クリップボードにある画像を直接貼り付けることは出来ない.
しょうがないので,Windows環境を前提として,クリップボードを一旦TEMPフォルダに保存してやるバッチファイルを作ってみた.

rem savetmpimage.bat

del %TMP%\clipboard.png
convert clipboard:image "%TMP%\clipboard.png"
if %ERRORLEVEL% neq 0 ( 
	echo %ERRORLEVEL%
	pause
)
explorer /select,"%TMP%\clipboard.png"
  • 一応,delで作成するファイルは消しておく(なくてもいい?)
  • convertはImageMagickの一部.こいつは画像ファイル向けのバッチファイルを作るときにとても便利だけど,Windowsだとパスを通さなきゃいけないから面倒だった気がする.
  • clipboard:imageはWindowsじゃないと動かなかった記憶がある.昔,FreeBSDの入った懐古マシンで似たことをしようとして頭を抱えた.今はどうなんだろ.
  • convertのエラーは環境変数%ERRORLEVEL%を見れば分かる*1.エラーが起きたらpauseしてチェック
  • exploerの/selectオプションでclipboard.pngが選択された状態でExplorerが開く*2エクスプローラのプレビューを有効にしておくと楽?

ショートカット編

バッチファイルを実行すると,ちゃんと動いてくれる.良かった.…が,タスクバーに入らない.
仕方ないので,cmd.exeにパッチファイルを起動させるショートカットを作成する.

f:id:sosoru_m:20150718030954p:plain

  • リンク先は「C:\Windows\System32\cmd.exe /c "[バッチファイルのパス]\savetmpimage.bat"」
  • 作業フォルダーに注意.「C:\Windows\System32」とかだとconvertに失敗するので(ユーザー権限の問題?),「C:\」とか身近なパスにする

作ったショートカットをタスクバーに登録すればできあがり

(補足 タスクバーに登録されるのはショートカットのコピーのようで,元のショートカットのリンク先・作業フォルダ等々を弄っても,タスクバーのショートカットには反映されない)

おまけ

f:id:sosoru_m:20150718033346p:plain
バッチファイルよりショートカットの方がファイルサイズが大きい

もっと楽な方法

windows.microsoft.com

すでにWindowsの機能で既にあるじゃないか・・・
Winキー+PrintScreenキーでピクチャフォルダに保存されるようだ.

**