2016-07-28 97 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數據庫中的包名稱不同 –

相關問題