Windows 7機能(JumpList)を触ってみよう
本章では.NET Framework 4から新しく追加された名前空間であるSystem.Windows.Shellを使って、Windows 7のジャンプリスト(JumpList)を操作してみます。
System.Windows.Shell名前空間はマネージコードへのアクセスやWindows 7タスクバーの拡張機能を提供する型が含まれており、ジャンプリストの操作のほか、タスクバーのサムネイルの表示方法や、縮小表示に関するクラスが用意されています。
また、ジャンプリストとはWindows 7からの新機能の一つで、デスクトップ上のタスクバー欄に表示されたアプリケーションアイコンを右クリックすると最近使ったファイルなどがポップアップでリスト表示されます。例えば、VS2010 Beta 2を起動した時のアイコンをタスクバー欄で右クリックしたのが図8です。
それでは早速、新規プロジェクトを作成します。VS 2010 Beta 2を起動後、[ファイル]-[新規作成]-[プロジェクト]より、[新しいプロジェクト]ダイアログで左側の[インストールされたテンプレート]欄のWindowsを選択し、[Windowsフォームアプリケーション]を選択します。適当なプロジェクト名(ここではForm1)を入力後、[OK]ボタンを押します。
ソリューションエクスプローラーの参照設定で右クリックをして、[参照の追加]を選択し、[.NET]タブから[PresentationFramework.dll]を指定してください。そしてForm1.csにusing System.Windows.Shellを追加します。
Form1.csのデザイナ上で、ダブルクリックをし、Form1_Loadにリスト1のコードを追加します(リスト1)。
private void Form1_Load(object sender, EventArgs e) { JumpList jumpList = new JumpList( new JumpItem[] { new JumpTask() { Arguments = "/Task1", Title = "タスク名称" } } , true, true); jumpList.Apply(); }
JumpListはWindows 7タスクバーのボタンとして表示されるタスクの一覧を表すクラスです。また、JumpItemで一覧に表示させる項目を指定します。
JumpListコンストラクタ(IEnumerable<JumpItem>, Boolean, Boolean)では指定したパラメーターを使用して、JumpListクラスの新しいインスタンスを初期化しています。JumpListコンストラクタの引数の詳細を表1に示します。
パラメータ | 内容 |
IEnumerable<JumpItem> | 一覧で表示されているJumpItemオブジェクトのコレクションを指定 |
Boolean | 一覧によく使われる項目を表示させるかを指定 |
Boolean | 一覧に最近使用したアイテムを表示させるかを指定 |
最後にjumpList.Apply()で現在の状態を適用しています。
メニューバーの[デバック]-[デバック開始]を実行すると、デスクトップ上のタスクバー欄にForm1というアプリケーションが起動するので、右クリックをすると、上記リスト1で指定した「タスク名称」という表示を確認することができます(図9)。
また、本稿ではとりあげませんが、Windows API Code Packを利用してもタスクバーを操作することができます。Windows API Code PackとはマネージコードからWindows 7の新機能を利用するための、ソースコードライブラリです。
MSDNの「Windows API Code Pack for Microsoft .NET Framework - Home」からダウンロード可能です。
また、Visual Studio 2008を対象とした使用方法がMSDNの「ハンズオンラボWindows 7タスクバー」で説明されています。興味のある方は合わせて確認してみてください。