このページの本文へ

前へ 1 2 次へ

Windows Info 第189回

Windows 10のUWPアプリのファイルから情報を取り出す

2019年09月08日 10時00分更新

文● 塩田紳二 編集● ASCII編集部

  • この記事をはてなブックマークに追加
  • 本文印刷

<uap:VisualElements>タグを調べる

 UWPアプリのもう1つの名前が、タイルに表示されるDisplayNameだ。仕様書によれば、これは、<uap:VisualElements>タグのDisplayName属性で指定されている。

●AppxManifest.xml uap:VisualElementsタグ
 https://docs.microsoft.com/ja-jp/uwp/schemas/appxpackage/uapmanifestschema/element-uap-visualelements

 タグにネームスペースがあるため、SelectNodesでは、ネームスペースを指定する必要があるが、PowershellでXMLをオブジェクトのように扱うとネームスペースを良い具合に無視してくれる。これを使って、インストールされているUWPアプリのVisualElementsタグの状態を調べるには

(Get-AppxPackage -PackageTypeFilter Main | Get-AppxPackageManifest).Package.Applications.Application.VisualElements | Out-GridView

とする。

同様にインストールされているUWPアプリのVisualElementsタグを取り出した。やはり、直接名前が指定されているものもある

 こちらも、“ms-resource:”で実際の値がリソース側にあるものだけでなく、直接指定されているものがある。

 具体的に特定のAppxManifest.xmlからタイルに表示される名前(VisualElementsタグDisplayName属性)を取り出すには、

$Manifest.Package.Applications.Application.VisualElements.GetAttribute('DisplayName')

とする。

 これらの結果と前回までの解析を組みあわせると、UWPアプリの日本語名を取り出すことができる。それ以外にもさまざまな情報を取り出すことができる。有用なのは、UWPアプリをURLで起動するときのスキーム名を取り出せることだろう。これは、

(Get-AppxPackage "*News*" | Get-AppxPackageManifest).Package.Applications.Application.Extensions.Extension.protocol.Name

でできる。BingNewsの場合、「bingnews」、「msnnews」、「msnews」の3つのスキーム名が表示されるが、どれもURLを開くスタイルで行うアプリ起動(に利用できる。Powershellやコマンドプロンプトからはstartコマンドを使って

start bingnews://

とする。他のアプリでも、調べればURI起動が可能になる。

 これで、UWPアプリのインストール先やリソースフォルダーにあるresources.priとAppxManifest.xmlから情報を引き出せるようになった。なお、C:\Windows以下にあるシステム系のAppxパッケージは、UWPとは違った構造になっているため、必ずしも今回のやり方で情報が得られるわけではないが、基本は同じである。Appxである以上、必ずAppxManifest.xmlがある。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン