- 適用バージョン:Windows 10 version 1809(build 17763)以降
はじめに
「クリップボードの履歴」はWindows 10 1809(build 17763)の新機能で、履歴にアクセスするポップアップが[Windows]キー+[V]キーを押すと立ち上がります(次の画像)。クリップボードへコピーした履歴が遡って表示され、どれかを選ぶとそのときアクティブなアプリ(画像では「メモ帳」)に貼り付けられます。それぞれの履歴の左下には、コピーした時刻(または、ローミングした時刻)が表示されています。右側には2~3個のボタンが縦に並んでいて、上から、その履歴の削除/ピン留め/ローミング(同期)となっています。

クリップボードの履歴を使うには、設定アプリの[システム]-[クリップボード]で設定します。設定では、機能のON/OFFと、デバイス間の同期(ローミング)の方法を切り替えます。クラウド経由でローミングもできることから、この機能は「クラウドクリップボード」/「クラウドベースのクリップボード」などとも呼ばれています。
Windows 10 1809用のSDKには、このクリップボードの履歴にアクセスするためのAPIも追加されました。そこで今回は、クリップボードの履歴とクリップボードそのものの内容を表示する「クリップボードビューア」を作ってみましょう(次の画像)。青いヘッダー部分に1つ表示されているのは、現在のクリップボードの内容です。下のグリッド部分に並んでいるのが、履歴の内容です。履歴のどれかをクリックすると、それがクリップボードに書き戻されます。また、Windows 10標準の履歴アプリ(ポップアップ)では表示されない情報がいろいろ取得できます。なお、これらのAPIは、WPFなどの従来のデスクトップアプリからも使えます(サンプルコード参照)。

また、このサンプルアプリでは、Windows Community ToolkitのAdaptiveGridViewコントロール/ScrollHeaderコントロール/WrapPanelコントロールを使っています。これらについても、簡単に紹介します。
対象読者
- UWPアプリを作っている開発者
- クリップボードの履歴について詳しく知りたい開発者
必要な環境
サンプルコード(GitHub)を試してみるには以下の環境が必要です。
- Windows 10 1809以降
- Visual Studio 2017 Version 15.9以降(無償のCommunity Editionで可)
- UWP用Windows 10 SDK:10.0.17763以降
なお、サンプルコードには2つのプロジェクトが入っています。
- ClipboardViewer:本稿で説明するUWPのサンプルコード
- WpfSample:WPFのサンプル
WPFのサンプルの方は、まさに履歴を表示するだけのものです(次の画像)。本稿では説明しませんが、従来のデスクトップアプリからもクリップボードの履歴にアクセスできることを示すために作りました。従来のデスクトップアプリからUWPのAPIを使う方法について、詳しくは第2回「超簡単! WPFなどの.NETのアプリからUWPのAPIを使う」をご覧ください。
