[WinRT] デスクトップアプリをスタート画面にタイルで表示する方法

デスクトップ アプリのスタート画面のタイルをカスタマイズする方法 (Windows ランタイム アプリ) (Windows)
http://msdn.microsoft.com/ja-jp/library/windows/apps/xaml/dn449733.aspx

基本は上記をよく読めばいいのですが、何故か最終的に 150x150Logo.png 等のタイルのファイルを何処に置くのか?が書いてないので、補足&メモ的に残しておきます(ステップ1から5までが対象になりますね)

*.visualelementsmanifest.xml ファイルを用意する

1
2
3
4
5
6
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <VisualElements
        BackgroundColor="#FF0000"
        ShowNameOnSquare150x150Logo="on"
        ForegroundText="light">
</Application>

あるいは

1
2
3
4
5
6
7
8
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <VisualElements
        BackgroundColor="#FF0000"
        ShowNameOnSquare150x150Logo="on"
        ForegroundText="light"
        Square150x150Logo="Assets150x150Logo.png"
        Square70x70Logo="Assets70x70Logo.png"/>
</Application>

という形で、ファイルを作成する。*.exe と同じ位置に用意するので、下の図のようにアプリケーション名 + visualelementsmanifest.xml で書いておきます。

image

Square150x150Logo と Square70x70Logo を指定しないときは、自動的にアプリのアイコンが使われます。背景色 BackgroundColor で揃えてもいいのですが、普通のストアアプリと同じように Logo のファイルも用意しておきます。
Assets フォルダを作っていますが、App.ico などと同じ場所に作ってもよいでしょう。その場合は、Assets150x150Logo.png を 150x150Logo.png のように書き換えます。

画像ファイルを「常にコピーする」に変更する。

image

ファイルのビルドアクションは「コンテンツ」、出力ディレクトリに「常にコピー」あるいは「新しい場合はコピーする」にします。ビルドしたときに、Assets フォルダに2つの画像ファイルが作られるようにしておけば ok です。

image

プログラムファイルにショートカットを作る

  1. Win+R キーを押して、shell:programs を起動する。
  2. *.exe のショートカットを作成する。

ショートカットは普通の *.lnk ファイルになります。

image

スタート画面のアプリメニューからピン留めする

スタートメニューのプログラム以下にショートカットを置くと、アプリ一覧にアイコンが出るのでスタート画面にピン留めします。

image

「Kindle 本棚」のアイコンがそれで、ストアアプリと同じように作れます。アイコン自体は、

Windows Store App logo Maker – 高橋 忍のブログ – Site Home – MSDN Blogs
http://blogs.msdn.com/b/shintak/archive/2013/01/01/10418997.aspx

を使うと便利です。必要なのは 150 と 70 のアイコンなので、それを Assets フォルダにコピーすれば ok です。

インストーラでスタートメニューに登録する

Visual Studioのセットアッププロジェクトが復活
http://www.infoq.com/jp/news/2014/05/vs2013_installer_project
Microsoft Visual Studio Installer Projects 拡張機能
http://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

標準の Visual Studio 2013 にはインストーラが付いていないのですが、Gallery からダウンロードできます。作り方は従来の Setup と同じなので、これを使ってスタートメニューに登録もできます。Kindle Launcher の購入一覧の取得ツールはこれを使っています。

image

アプリケーションフォルダに「コンテンツファイル」を追加すると Assets 以下のファイルもインストールの対象になります。

タイルを更新する裏ワザ

先の MSDN のヘルプにある、「ステップ 7: 重要!ショートカット ファイルを更新する」を利用します。裏ワザというか、リンクファイル(*.lnk)をスタート画面に再読み込みさせる仕組みです。画像ファイルや *.visualelementsmanifest.xml だけを更新してもスタート画面の画像は変化しません。説明にある通り、powsershell を使って (ls “$env:programdatamicrosoftwindowsstart menuprogramscontoso.lnk”).lastwritetime = get-date で *.lnk ファイルを更新します。いわゆる、touch コマンドと同じです。

なので、デスクトップアプリで定期的に画像ファイルを更新して、*.lnk を更新すればスタート画面のタイルをライブタイル化できるということです。定期的に *.visualelementsmanifest.xml の中身を書き換えるツールを作ればよいので、これはそれほど難しくないと思います。おそらくストアアプリの制限よりも早く回せるでしょう。まあ、デスクトップ側にスケジューラ用のアプリが自前で必要にはなりますが。

カテゴリー: WinRT パーマリンク