Получить локализованные имена установленных приложений Windows Store в Windows 8 - программирование
Подтвердить что ты не робот

Получить локализованные имена установленных приложений Windows Store в Windows 8

Я хочу заполнить ListBox локализованными отображаемыми именами всех установленных приложений Windows Store в настольном приложении Windows 8. Я пробовал это:

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 и стандартные приложения, которые удаляются.

EDIT: я обнаружил, что все установленные приложения имеют ярлыки в %LocalAppData%\Microsoft\Windows\Application Shortcuts, но эти ярлыки не имеют локализованного имени и не работают при открытии.

4b9b3361

Ответ 1

Вместо того, чтобы напрямую анализировать файлы AppxManifest, используйте класс PackageManager.

В MSDN имеется довольно много образцов, которые демонстрируют, как собирать разнообразные материалы об установленных пакетах приложений, в том числе перечислять пакеты приложений по образцу SID пользователя.

Ответ 3

Я не думаю, что есть Windows Runtime API, которые могут отображать эту конкретную информацию в приложении. Владелец приложения несет ответственность за предоставление информации в Appx Manifest в первую очередь. что бы вы ни посмотрели - [http://msdn.microsoft.com/en-us/library/Hh446622] надеюсь, что что-то может быть полезно для вас.