Windows 11には、クリップボードにコピーした内容の履歴を保持し、一覧から簡単に貼り付けられる「クリップボード履歴」という機能が提供されている。しかし、大量のデータをコピーした場合などには、この履歴機能が正常に働かないことがある。Windows Latestは1月5日(現地時間)、「Why Windows 11 clipboard is a hit or miss sometimes, according to Microsoft」において、その理由を詳しく解説した。
クリップボード履歴が動作しない2つのパターン
Windows 11のクリップボード履歴にアクセスするには、キーボードショートカットで[Win]+[V]を入力すればよい。すると、デスクトップにポップアップウィンドウが現れ、最近クリップボードにコピーした内容の履歴が一覧表示される。リストから任意の項目をクリックすれば、それが再びクリップボードにコピーされて、貼り付けが可能となる。Phone Linkでスマートフォンと接続している場合には、デバイス間でクリップボード履歴を共有することもできる。
Windows Latestによると、クリップボードにコピーしたにもかかわらず、この履歴に反映されないケースには、主に次の2つのパターンがあるという。1つは非常に速くクリップボードに複数回のコピーを行った場合だ。クリップボード履歴のサービスは、クリップボードの変更イベントをAddClipboardFormatListenerというAPIで受け取ることで実現しているが、このイベント処理は非同期であるため、変更イベントをリスナーが受け取る前に、次の変更イベントが起こった場合には、最初のイベントを取りこぼす可能性があるという。
もう1つのケースは、アプリがコピー&貼り付けに「遅延レンダリング」と呼ばれる方式を使っている場合だ。遅延レンダリングは、クリップボードを使わずに、貼り付け実行に初めてデータをソフトウェア間でやりとりする方式で、取り扱うデータが複雑でサイズが大きいソフトウェアでよく利用されている。
クリップボード履歴の限界を知る
遅延レンダリングには、貼り付けの操作が30秒以上かかると失敗するという性質がある。この場合、ユーザー自身はコピーを実施したつもりでも、実際にはクリップボードは使っていないので、クリップボード履歴には反映されない。通常であればこの30秒のタイムアウトは問題にならないが、システムに高い負荷がかかっているときに、高解像度の画像や巨大なExcelシートをコピーした場合などには影響が出ることがある。同様の理由で、クリップボード履歴がコピーされたデータの取得に30秒以上かかってしまうと、履歴に正しく反映されないという結果になる。
なお、もしもセキュリティ上の理由などでクリップボードの履歴を記録したくない場合には、設定アプリの「システム」→「クリップボード」のページで、「クリップボードの履歴」項目を「オフ」に変えればよい。また、「クリップボードのデータを消去する」の「クリア」ボタンを押せば、それまでの履歴が削除できる。
![[Win]+[V]でクリップボード履歴にアクセスできる](images/001.jpg)
