Elmo
Elmo

Reputation: 6471

Get Localized Names of Installed Windows Store Apps in Windows 8

I want to populate a ListBox with the localized display names of all the installed Windows Store apps in a Windows 8 desktop app. I tried this:

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);
 }

But it adds up ms-resource strings and default apps that are uninstalled.

EDIT: I found that all the installed apps have their shortcuts in %LocalAppData%\Microsoft\Windows\Application Shortcuts but those shortcuts don't have the localized name and are non-functional when opened.

Upvotes: 14

Views: 1853

Answers (3)

RaviRanjanKr
RaviRanjanKr

Reputation: 11

I don't think that There are Windows Runtime APIs which can expose this particular information back to the app. The owner of app is responsible to providing the information to the Appx Manifest in the first place. whatever you can take a look there-[http://msdn.microsoft.com/en-us/library/Hh446622 ] hope something can be useful for you.

Upvotes: 1

Niels
Niels

Reputation: 620

Did you try that: http://marcominerva.wordpress.com/2012/12/17/localizing-app-name-in-windows-store-apps/

If you set correctly the AppPackage Name on the AppDevCenter, your appx on the client side will return you the localized name.

Upvotes: 1

Nathan Kuchta
Nathan Kuchta

Reputation: 14172

Instead of parsing the AppxManifest files directly, use the PackageManager class.

On MSDN, there are quite a few samples that demonstrate how to gather a variety of content about installed application packages, including the Enumerate app packages by user SID sample.

Upvotes: 1

Related Questions