3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クリップボードの魔法を知る

Posted at

お前は今までしたコピペの数を覚えているか

覚えていないくらいCtrl+C,Vは皆さん使っていると思います。
Command+C派閥の方も同様です。

クリップボードはコードや文章のコピー、スクショの確保などを行うことができます。
あることが当たり前で、この機能が存在しない世界線は想像できません。

Windowsネイティブアプリでクリップボード周りの実装を行った際、アプリやOSはいろいろ頑張ってくれていたんだと実感したので、こちらに書いてみます。

貼り付け動作はアプリ次第

デモ

chromeからwordおよびwindows10のメモ帳にhtmlを貼り付けた際の動作を見てみましょう
mainwindow.gif
wordではアイコン画像の表示やリンクの生成、フォントサイズの再現が行われていますが、メモ帳では文字のみの表示となっています。

クリップボードの中身

ツールを使って、クリップボードの中身を見てみましょう。
今回使うツールはこちら クリップ見え窓
11.png
クリップボード内は各フォーマットごとに要素が格納されています。
HTMLの場合は以下のようなデータが格納されています。
12.png
一方、TEXTは以下のようになっています。
13.png
察するに、メモ帳はこのTEXTのみ対応していて、それを読み取って表示しているようですね。

クリップボードをリッチにしたいあなたに

ネイティブアプリ内で独自の要素をクリップボード操作したい場合、Windows APIでは以下のようなAPIが用意されています。
SetClipboardData
GetClipboardData
気になる方は遊んでみてください。

まとめ

何気ないコピペ操作の裏側では日々、このようなやり取りが行われていたのです。
皆さんも色々遊んで見てください。興味深いクリップボードデータが見れるかもしれません。
Windowsおじさんで申し訳ありません。

おまけ

自分が使っているCtrl+C,X,V以外のクリップボード操作についてまとめます。

  • Windows+V
    クリップボード履歴を表示し、過去にコピーや切り取りをしたテキストや画像が新しい順に一覧表示できるようになります。
  • PrintScreen
    画面全てのスクリーンショットをクリップボードに格納します。
  • Alt+PrintScreen
    アクティブウィンドウのみのスクリーンショットをクリップボードに格納します。
  • Windows+Shift+S
    画面上任意の領域のスクリーンショットをクリップボードに格納します。

・・・ほとんどスクショやないかい。
では、良いお年を。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?