Windowsの基本機能であるクリップボードについてあらためて整理
ASCII.jp / 2024年3月24日 10時0分
今更ながらだが、Windowsのクリップボードについて整理しておく。なお、クリップボードの応用的については過去記事(「Windowsの基本機能 クリップボードをさらに活用する」)がある。本記事はそのアップデートも含む。
クリップボードはWindowsの基本機能
クリップボードとは、プログラム間でテキストや画像などのデータを交換する方法の1つだ。Windowsの基本機能であり、多くのアプリケーションやWindows付属アプリ、システムプログラムがこれをサポートする。
マウスのドラッグや「Shift+カーソルキー」で選択状態となるものは、基本的にクリップボードに「コピー」可能だ。この処理は、ウィンドウを表示しているプログラムがする。Windowsの標準的な機能であるため、コピー操作は「Ctrl+C」または「Ctrl+Ins」でできることが多い。これは、ホットキーではなく、プログラム自体が処理するキーボードショートカットである。
以下の表は、クリップボード関連の操作を示す。このうち、グローバル欄に丸印があるのものは、どの場面でも有効なホットキーである。
印のないもので、キーストロークを表すものは、ウィンドウを表示しているプログラムが処理するキーボードショートカットだ。その動作はプログラムに依存する。ただし、Windowsはユーザーインターフェースのガイドラインを策定しており、多くのプログラムがこれに従うため、同種の動作には、同じショートカットが割り当てられる。
クリップボードにデータを転送することを「コピー」、データを受け取ることを「貼り付け」と呼ぶが、この操作が可能かどうかは実際にはプログラム次第だ。なお、「切り取り」はクリップボードの操作としては「コピー」だが、処理するアプリケーションが対象を削除することで実現されている。
ほとんどのアプリケーションでは、受け入れ可能なデータ形式が決まっており、必ずしもクリップボードのデータを受け入れられるとは限らない。たとえば、メモ帳はテキスト形式は受け入れられるが、画像データは受け入れられない。
クリップボードのコピーでは、貼り付け先アプリケーションが何を受け付けるのかがわからないため、できる限り多数の形式でクリップボードにデータをコピーする。Windowsは、あらかじめ定義されたデータ形式を持っている(前掲の過去記事参照)。これは、Win32APIと.NETで個別に定義されている。.NETのクリップボード(クラス)は、Win32APIのクリップボードを使って実装されているものの、APIとしては異なる。
クリップボード履歴と共有で 他のマシン間でクリップボードの内容を共有する
Windowsのクリップボードには、「履歴」と「共有」の機能がある。これは、設定アプリの「システム」→「クリップボード」で有効化する。履歴機能と共有機能は個別にオンオフを指定できる。
クリップボード履歴には、テキストとHTMLデータ、画像しか登録されない。1つのデータは最大4MBである。また、履歴には最大25個のデータを記録し、追加されるたびに、最も古いものから消去されていく。ただし、トータルでの最大容量に制限があるようで、大きな画像が登録されると、複数の項目が消えることがあり、常に25個のデータが登録されているわけではないようだ。
画像データは、クリップボードに入っているときにはWindows BitmapやWindows DIB(Device Independent Bitmap)形式となるが、クリップボード履歴内での記録形式は不明でWindows Bitmap形式ではない模様。というのも、PNG形式などで4MB以下になるような画像でも、Windows Bitmap形式だと4MBを越えてしまうことがあるからだ。
クリップボード共有は、前述の設定ページで、同期方法を自動・手動のどちらかを選択できる。「自動」は、他のマシン(リモート側)でコピーがされたとき、自動的にローカルのクリップボードに反映させる。また、ローカル側でコピーをしたときは、自動的に他のマシンにデータを転送する。
これに対して、「手動」は、他のマシンでコピーがされても、ローカルのクリップボードは変化せず、「Win+V」でクリップボード履歴を表示させて、そこからクリップボードにコピーするデータを選択する。ローカルでコピーしたデータをリモート側に反映させるには手動で同期をする。
「自動」と「手動」は、設定ページでは「コピーしたテキストを自動的に同期する」「コピーしたテキストを手動で同期する」と表記されているが、実際にはテキストだけでなく履歴に入れることができる画像やHTMLも同期の対象である。
「Win+V」で表示される「クリップボード履歴パネル」は、Windows 11では、「Win+ピリオド」で開く「絵文字パネル」とウィンドウを共有しており、最上部にあるアイコンで機能を選択できる。この一番右側にあるのがクリップボード履歴だ。
ここには、クリップボードにコピーされたデータの履歴が並び、項目をクリックすることで、データは現在のクリップボードにコピーされる。また、「クリア」ボタンを使って履歴すべてを消去できるが、データ項目の右下のピン留めアイコンをクリックすることで、クリアの対象から外せる。
クリップボード履歴パネルでは、個々の項目の右上にある点が3つ並んだアイコンで、削除や手動同期が可能。ローカルからコピーされたデータで、クリップボード共有の同期が手動の場合には、同期ボタンが表示される。右端のゴミ箱アイコンは、項目の削除である。
リモートでコピーされたデータでは、同期ボタンは表示されない。どの場合でも対象がテキストデータの場合、右側に「テキストとしてコピー」ボタンが表示される。
クリップボードをPowerShellで便利に使うためのTips
最後にクリップボード関連の事柄をいくつか紹介する。まず、現在のクリップボード内容だが、PowerShell(Windows PowerShell)から簡単に表示させることが可能だ。それには、以下の2行を実行する。
Add-Type -AssemblyName PresentationCore [System.Windows.Clipboard]::GetDataObject().GetFormats()
1行目は、.NETのSystem.Windows.Clipboardクラスを使うための「おまじない」(アセンブリのロード)なので、最初の一回だけ実行すればよい。前掲の過去記事では、Add-Typeのクラス名が異なり、Windows PowerShellでのみ有効だった。しかし、アセンブリ名を「PresentationCore」にすると、PowerShell、Windows PowerShellのどちらでも有効になる(これについては前回記事を参照のこと)。
Windows付属のターミナル(Windows Terminal)では、選択範囲を自動的にクリップボードに設定することが可能である。
これは、GUI設定の「操作」にある「選択範囲をクリップボードに自動でコピーする」をオンにする。これにより、コマンドの出力を簡単にクリップボード経由で他のプログラムに転送できる。
また、PowerShellを使う場合、同じページにある「単語の区切り文字」からハイフンを削除すると、PowerShellのコマンド名をダブルクリックで選択状態にできるようになる。その後、右クリックメニューの「Web検索」を使えば、コマンドに関する情報を簡単にインターネット検索できる。PowerShellのヘルプコマンドを起動するよりも簡単だ。
特にPowerShell(Core)は、ヘルプファイルが貧弱なので、Microsoftのドキュメントページを探すことが多い。なお、右クリックメニューは、settings.jsonファイルにあるプロファイル設定に
"experimental.rightClickContextMenu": true
を追加する。デフォルトプロファイルで設定しておくといいだろう。右クリックメニューの詳細に関しては過去記事(「内部的な改良で便利になったWindows Terminal v1.19での新機能を確認」)を参照してほしい。
ディレクトリ内のファイルのリストを作りたいといった場合、コマンド出力を直接クリップボードに入れることができる。cmd.exeであれば、
dir | clip.exe
とする。PowerShell/Windows PowerShellなら、もう少し複雑なことが可能で、たとえば、ハードリンクを除きシンボリックリンクだけのリストを作りたいなら、
dir | where ModeWithoutHardLink -match "^l" | Set-Clipboard
とすればよい。
また、クリップボードのテキストを加工することもできる。以下のコマンドでは、クリップボードテキストから半角の角カッコ(“[”と“]”)を削除してクリップボードに書き戻す。
((Get-Clipboard) -replace "[\[\]]","") | Set-Clipboard
「Get-Clipboard」で得たテキストは、そのままPowerShellの演算子やコマンドで処理が可能なので、メモ帳などで編集しなくてもよい。
クリップボードは、GUIと深い関係にあり、GUIの元祖といわれるAltoに搭載されていた。Ctrl+C/X/Vのショートカットは、その頃からのもの。Windowsも最初のVer.1.xからクリップボードを持っていた。クリップボード関連の機能をうまく使うと、「一手間」減らせることがある。
この記事に関連するニュース
-
窓辺の小石 第175回 Stream form Outer Network
マイナビニュース / 2024年7月19日 17時43分
-
ChatGPTで出力した内容をファイルとしてダウンロードする方法
ITmedia Mobile / 2024年7月18日 18時45分
-
「Firefox 128」を試す - プライベートブラウジングの機能向上や新APIなども搭載
マイナビニュース / 2024年7月10日 17時22分
-
今更more.comを使うのか!? Windowsでのページングを考える
ASCII.jp / 2024年7月10日 12時0分
-
Windowsはなぜ再起動が必要になるのか?
ASCII.jp / 2024年6月30日 10時0分
ランキング
-
1「やめて……」Amazon公式の誠実対応のせいで経済事情を全世界に公開 「悲しい気遣い」「傷口に砂糖」
ねとらぼ / 2024年7月22日 20時45分
-
2ハロプロ、新幹線トラブルでイベント当日中止 ファンから悔しさと励ましの声「仕方ないとは思いますが」「気にしすぎないでね」
ねとらぼ / 2024年7月22日 19時50分
-
3京都タワーのキャラ「たわわちゃん」事業終了 作者が使用料などのトラブル明かす タワー運営「当社の見解と異なる」
ねとらぼ / 2024年7月22日 15時30分
-
4「画期的!」「すげえ」 テレ東が特番放送→新聞の番組表に描かれた“まさかのデザイン”に驚き
ねとらぼ / 2024年7月22日 19時26分
-
5「バチェロレッテ」出演の画家・杉田陽平さんが一般女性との結婚報告 「初心を胸に」
ねとらぼ / 2024年7月22日 20時18分
記事ミッション中・・・
記事にリアクションする
記事ミッション中・・・
記事にリアクションする
エラーが発生しました
ページを再読み込みして
ください