2012-11-14 6 views
14

ListBoxに、インストールされているすべてのWindows Storeアプリケーションのローカライズされた表示名をWindows 8デスクトップアプリケーションに挿入します。私はこの試みた:Windows 8にインストールされているWindowsストアアプリのローカライズされた名前を取得する

string Apps = Interaction.Environ("ProgramFiles") + "\\WindowsApps"; 
foreach (App in IO.Directory.GetDirectories(Apps)) { 
      XmlDocument xml = new XmlDocument(); 
      xml.LoadXml(My.Computer.FileSystem.ReadAllText(App + "\\AppxManifest.xml")); 
      lbApps.Items.Add(xml.GetElementsByTagName("DisplayName")(0).InnerText); 
} 

をしかし、それはアンインストールされms-resource文字列とデフォルトのアプリを追加します。

編集:インストールされているすべてのアプリケーションのショートカットが%LocalAppData%\Microsoft\Windows\Application Shortcutsであることがわかりましたが、これらのショートカットにはローカライズされた名前がなく、開いたときに機能しません。

答えて

1

AppxManifestファイルを直接解析する代わりに、PackageManagerクラスを使用してください。

MSDNには、Enumerate app packages by user SID sampleなど、インストールされているアプリケーションパッケージに関するさまざまなコンテンツを収集する方法を示すサンプルがかなりあります。

+0

パッケージ名ではなくローカライズされた名前が必要です。 – Elmo

+0

この問題に対する解決策をお探しですか? – Harindaka

1

私はこの特定の情報をアプリに戻すことができるWindowsランタイムAPIがあるとは思わない。 appの所有者は、最初にAppxマニフェストに情報を提供する責任があります。そこに見えるものは何でも - [http://msdn.microsoft.com/en-us/library/Hh446622]何かがあなたに役立つことを願う。

+0

私のアプリケーションはデスクトップアプリケーションなので、WinRT APIは必要ありません。 – Elmo

関連する問題