クリップボード取り出しコマンド
クリップボードからデータを取り出すプログラムを作ったので紹介します。 ファイルやExcelなどの(多分)Windows固有のデータも取り出せます。
経緯
クリップボードのデータを様々なデータ形式で取り出せる手段はあまりないように感じます。せいぜいテキスト情報、できてHTMLや画像情報のみ。 そこでクリップボード情報を手軽に取り出すコマンドラインプログラムを作成しました。 単体でも使えるし、ほかプログラムと連携させることもできます。 動作環境はWindows限定です。かつ、.Net 5ランタイムが必要です。
インストール
Githubで公開しています。 zipを解凍して任意のフォルダに格納してください。 必要に応じて環境変数に追加してください。
コマンドの説明
cclip.exe [オプション]
オプション
- -l, --list
クリップボードのフォーマット一覧を表示します。 - -f, --format フォーマット名
出力するフォーマットを指定します。 - -j, --json
JSON形式で出力します。 - -a --all
JSON出力時、すべてのフォーマットについて出力します。 - -o --output ファイルパス
標準出力ではなくファイルに出力します。
例
HTMLテキスト"電算倶楽部"をコピーした状態で実行
テキスト情報表示
コマンド
cclip.exe
電算倶楽部
フォーマット一覧表示
コマンド
cclip.exe -l
出力
HTML Format Text UnicodeText System.String Locale OEMText
HTMLフォーマットで表示
コマンド
cclip.exe -f "html format"
出力
Version:0.9 StartHTML:0000000360 EndHTML:0000001068 StartFragment:0000000396 EndFragment:0000001032 SourceURL:https://blog.hatena.ne.jp/-/globalheader/f7f8f9/242527/admin?device=pc&show_upgrade_pro=yes&brand=hatenablog#https%3A%2F%2Fblog.hatena.ne.jp%2Fs-densan%2Fs-densan.hatenablog.com%2Fedit%3Fsyntax%3Dmarkdown%26title%3D%26entry%3D26006613667805093 <html> <body> <!--StartFragment--><a class="current-blog-title" href="https://s-densan.hatenablog.com/" style="color: rgb(247, 248, 249); display: block; line-height: 37px; text-decoration: none; max-width: 180px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;">電算倶楽部</a><!--EndFragment--> </body> </html>
ファイル出力
コマンド
cclip.exe -f "html format" -o out.html
out.html
が出力される。
画像をコピーした状態で実行
コマンド
cclip.exe -l
結果
Preferred DropEffect Bitmap System.Drawing.Bitmap System.Windows.Media.Imaging.BitmapSource ContentSourceUserActivity PNG
画像データを出力
コマンド
cclip.exe
結果
iVBORw0KGgoAAAANSUhEUgAAAHgAAAAnCAYAAADEvIzwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAkxSURBVHhe7ZsJUBVXFoZ/UGRR0cHAiMsEURTUCWoUUbOUu2iVFUNMppwg4Erc18SgWCCKmOCGS5AgwiiKwRAUNRklaCUxWsGFxCUDDo4boomgBQqy6dxzuR2aR/d7j01Tr/qr6uL16X79us+595z/3C7MSsvKn0HDZDEXfzVMFC3AJo4WYBNHC7CJowXYxNECbOJoATZxtACbOFqATRwtwCbOCwtwWvq3mD7rA9y8dUtYavLs2TPsT0rCgiVL8Pv934XVMI8fP8aHgYGI3rkTT58+FdY/Jw8ePoTPFH9s3rZVWBqf5uKvKmfPn8e0gJlir244tnfE9shI (略)
JSON形式で出力
コマンド
cclip.exe -j
結果
[ { "format": "Bitmap", "data": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAnCAYAAADEvIzwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAkxSURBVHhe7ZsJUBVXFoZ/UGRR0cHAiMsEURTUCWoUUbOUu2iVFUNMppwg4Erc18SgWCCKmOCGS5AgwiiKwRAUNRklaCUxWsGFxCUDDo4boomgBQqy6dxzuR2aR/d7j01Tr/qr6uL16X79us\u002B595z/3C7MSsvKn0HDZDEXfzVMFC3AJo4WYBNHC7CJowXYxNECbOJoATZxtACbOFqATRwtwCbOCwtwWvq3mD7rA9y8dUtYavLs2TPsT0rCgiVL8Pv934XVMI8fP8aHgYGI3rkTT58\u002BFdY/Jw8ePoTPFH9s3rZVWBqf5uKvKmfPn8e0gJlir(略)" } ]
ファイルに保存
コマンド
cclip.exe -f bitmap -o out.png
out.pngに保存される。
ファイルをコピーした状態で実行
一覧を表示
コマンド
cclip.exe
結果
C:\Users\(ユーザ名)\Desktop\cclip_v0.1.0\cclip.dll C:\Users\(ユーザ名)\Desktop\cclip_v0.1.0\cclip.exe C:\Users\(ユーザ名)\Desktop\cclip_v0.1.0\cclip.runtimeconfig.json C:\Users\(ユーザ名)\Desktop\cclip_v0.1.0\cclip_lib.dll
フォーマット一覧
コマンド
cclip.exe -l
結果
Shell IDList Array DataObjectAttributes DataObjectAttributesRequiringElevation Shell Object Offsets Preferred DropEffect AsyncFlag FileDrop FileNameW FileName FileContents FileGroupDescriptorW
JSON形式で出力
コマンド
cclip.exe -j
結果
[ { "format": "FileDrop", "data": [ "C:\\Users\\(ユーザ名)\\Desktop\\cclip_v0.1.0\\cclip.dll", "C:\\Users\\(ユーザ名)\\Desktop\\cclip_v0.1.0\\cclip.exe", "C:\\Users\\(ユーザ名)\\Desktop\\cclip_v0.1.0\\cclip.runtimeconfig.json", "C:\\Users\\(ユーザ名)\\Desktop\\cclip_v0.1.0\\cclip_lib.dll" ] } ]