14

我想ListBox用 Windows 8 桌面应用程序中所有已安装的 Windows 应用商店应用程序的本地化显示名称填充 a。我试过这个:

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但这些快捷方式没有本地化名称,并且在打开时不起作用。

4

3 回答 3

1

我认为没有 Windows 运行时 API 可以将此特定信息公开回应用程序。应用程序的所有者有责任首先向 Appx Manifest 提供信息。无论你可以在那里看看 - [ http://msdn.microsoft.com/en-us/library/Hh446622 ] 希望对你有用。

于 2013-06-07T04:36:05.117 回答
1

你试过了吗:http: //marcominerva.wordpress.com/2012/12/17/localizing-app-name-in-windows-store-apps/

如果您在 AppDevCenter 上正确设置了 AppPackage Name,那么您在客户端的 appx 将返回本地化名称。

于 2013-05-10T07:20:33.287 回答
1

不要直接解析 AppxManifest 文件,而是使用PackageManager该类。

在 MSDN 上,有很多示例演示了如何收集有关已安装应用程序包的各种内容,包括按用户 SID 枚举应用程序包示例

于 2012-11-18T17:39:56.080 回答