2016-07-28 119 views
1

我正在解析AppxManifest.xml并获取显示名称。这包含类似
ms-resource:ApplicationTitleWithBranding,ms-resource:AppTitleWithBranding,
ms-resource:AppStoreName。如何获得Windows应用商店应用的本地化显示名称

当我使用SHLoadIndirectString函数与此显示名称(格式为@ {PRIFilepath?资源}),我没有得到本地化的显示名称。它什么都不返回。

但是,我对包含显示名称类似ms-resource:///Resources/AppStoreName的某些应用程序得到了正确的响应。

是否有任何解决方法来获取本地化的显示名称?

我需要这个工作在windows8.1和windows10上。这是一个桌面应用程序。

回答

2

我刚刚将'ms-resource:AppTitleWithBranding'传递给函数以及pri文件位置。这就是为什么我没有得到本地化的名字。

我们不应该以这种格式发送资源:ms-resource:AppTitleWithBranding。以下面的格式修改这个东西。

资源应采用以下格式:
MS-资源://Package.Id.Name/resources/AppTitleWithBranding

如果AppxManifest.xml已经包含在上面的格式,然后只是传递,因为它是。

,最终格式应该是@ {PRIFilepath资源?}

1

我知道多一点ms-resource: URI转换为@{PRIFilepath?resource}

ms-resource:///xxx => ms-resource://<PRI-file package name>/xxx 
ms-resource://xxx 
ms-resource:/xxx => ms-resource://<PRI-file package name>/xxx 
ms-resource:xxx  => ms-resource://<PRI-file package name>/Resources/xxx 
ms-resource:xxx/yyy => ms-resource://<PRI-file package name>/xxx/yyy 
ms-resource:xxx/yyy => ms-resource://<PRI-file package name>/Resources/xxx/yyy 

注意:要小心,从WinRT的数据库包名称和AppxManifest.xml可以不同于resources.pri的包名。

+0

关于,'小心,WinRT数据库和AppxManifest.xml中的包名可以不同,然后是来自resources.pri.'的包名。有没有一种方法可以专门查询'resources.pri',而不是'AppxManifest。 xml'? –

+0

'SHLoadIndirectString()'适用于为其他用户安装的应用程序的资源字符串吗?系统上的两个用户可能没有相同的语言。 –

+0

Win10有时会使用GUID packagesName安装系统应用程序。为什么?我不知道。因此,在这种情况下,包名称形式'AppxManifest.xml'与WinRT数据库中的包名称不同 –

相关问题