電算倶楽部 富山県のコンピュータ社会人サークル

富山県、特に滑川市、富山市、魚津市周辺で活動している社会人サークルです。

クリップボード取り出しコマンド

クリップボードからデータを取り出すプログラムを作ったので紹介します。 ファイルやExcelなどの(多分)Windows固有のデータも取り出せます。

経緯

クリップボードのデータを様々なデータ形式で取り出せる手段はあまりないように感じます。せいぜいテキスト情報、できてHTMLや画像情報のみ。 そこでクリップボード情報を手軽に取り出すコマンドラインプログラムを作成しました。 単体でも使えるし、ほかプログラムと連携させることもできます。 動作環境はWindows限定です。かつ、.Net 5ランタイムが必要です。

インストール

Githubで公開しています。 zipを解凍して任意のフォルダに格納してください。 必要に応じて環境変数に追加してください。

github.com

コマンドの説明

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, &quot;Segoe UI&quot;, 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
(略)

Base64で符号化して出力。画像形式はPNG

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"
    ]
  }
]