共用方式為


尋找重新導向的字串

本主題討論尋找重新導向登錄字串的程序設計指示。 如需詳細資訊,請參閱使用登錄字串重新導向

載入 Language-Neutral 登錄值

在 Windows Vista 和更新版本上,MUI 應用程式會使用語言中性登錄值,允許存取儲存在字串資源數據表中的語言特定字串。 如需詳細資訊,請參閱使用登錄字串重新導向 中建立 Language-Neutral 資源。

從登錄讀取語言中性值的應用程式程式代碼應該呼叫 RegLoadMUIStringW,以正確的使用者介面語言載入字串。 如果使用此函式,您的應用程式就不需要明確地處理資源載入。

如果您要將現有的應用程式更新為在登錄中使用語言中性的方式,通常會保留登錄中已存在的字串值,且這些字串值已當地語系化為英文或其他單一語言,以作為備援及維持向後相容性。 如果呼叫 RegLoadMUIStringW 失敗,將常值字串保留在登錄中,則應用程式可以回復為常值字串。 您必須決定如何實作這類備援措施,因為 MUI 不提供這類實作的支援。

使用 Shell API 從註冊表設置捷徑字串

您的應用程式可以使用 Shell API 來建立快捷方式的字串,這些快捷方式用於連結 開始 功能表或桌面上的檔案或資料夾。 如需詳細資訊,請參閱在 中使用登錄字串重新導向來建立快捷字串資源的方法

應用程式可以使用 SHSetLocalizedName 載入快捷方式的 MUI 相容顯示名稱。 它應該使用 IShellLink::SetDescription 來設定相關聯的 InfoTip。 呼叫會將字串註冊到登錄中。 請考慮下列範例,其中 「HKCR」 代表HKEY_CLASSES_ROOT登錄機碼:

HKCR,"CLSID\%CLSID_AntiSpyware%",,,"Windows AntiSpyware"

HKCR,"CLSID\%CLSID_AntiSpyware%","LocalizedString",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-104"

HKCR,"CLSID\%CLSID_AntiSpyware%","InfoTip",,"@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,-208"

第一行提供用於後援和向後相容的未本地化文字字串。 第二行會顯示註冊顯示名稱的 MUI 相容方式。 這一行指出儲存在 Msascui.exe 的字串識別碼 104(適用於 Windows XP),或儲存在其相關聯語言特定檔案中的字串識別碼 104(適用於 Windows Vista)。 此字串標識碼會對應至「我的網路位置」。 範例中的第三行會處理 InfoTip 註冊。 %CLSID_AntiSpyware% 指定環境變數,代表符合此元件的類別標識碼的 GUID。

針對上述範例,應用程式會呼叫 SHSetLocalizedName 來指定前兩個參數的可執行文件路徑,並將 idsRes 指定為 “@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,104”。 呼叫 IShellLink::SetDescription,會將 InfoTip 的路徑指定為 “@%ProgramFiles%\Windows AntiSpyware\MSASCui.exe,208”。

在註冊表中查詢易於查詢的文件類型名稱

如需瞭解有關建立易記檔類型名稱的資源,請參閱 使用登錄字串重新導向中的「為易記檔類型名稱建立資源」。 若要查詢易記的檔名稱,應用程式應該使用 IQueryAssociations::Init,後面接著呼叫 IQueryAssociations::GetStringIQueryAssociations::Init 呼叫會指定檔類型,例如“.txt”。 呼叫 IQueryAssociations::GetString 必須將ASSOCSTR_FRIENDLYDOCNAME指定為字元串標識符。

註冊 Microsoft 管理控制台嵌入式程式字串未能從登錄中讀取

您的應用程式可以使用 Microsoft Management Console (MMC) 嵌入式管理單元來裝載其管理工作。 大部分的字串會依照在[使用登錄字串重新導向 建立 Microsoft 管理控制台字串資源 Snap-Ins] 所描述的登錄設定,處理為資源。 不過,某些嵌入式管理單元會登錄 MMC 無法從登錄讀取的登錄字串值。 在此情況下,嵌入式管理單元必須使用與 MUI 相容的 ISnapinAbout 介面來取得值。

從登錄設定 Windows 服務的顯示名稱和描述

如果您的 MUI 應用程式使用 Windows 服務,它必須顯示服務顯示名稱和描述。 使用登錄字串重新導向 中的< 建立 Windows 服務的字串資源>中會討論相關聯的資源。

若要設定服務顯示名稱,MUI 應用程式會呼叫 CreateServiceChangeServiceConfig。 名稱是格式為 「@<PE-path>,-<stringID>[;<comment>]」 的字串。 例如,如果您的服務是由路徑為 %ProgramFiles%\%MyPath%\MyDll.dll的 .dll 檔案實作,且語言特定顯示名稱的字串標識符為 347,則會將 參數指定為 “@%ProgramFiles%\\%MyPath%\\MyDll.dll,-347”。 雙反斜杠 (\\) 是必要的,因為 C/C++會使用反斜杠作為字串中的逸出字元。

若要設定語言特定的服務描述,MUI 應用程式應該使 lpDescription 成為 SERVICE_DESCRIPTION 結構中的一個成員,這個成員應指向格式為「@<PE-path>,-<stringID>[;<comment>]」的字串,並參考適當的字串識別碼。 然後,應用程式會呼叫 ChangeServiceConfig2,其中參數 dwInfoLevel 指定為 SERVICE_CONFIG_DESCRIPTION,而參數 lpInfo 指定為 SERVICE_DESCRIPTION 結構。

尋找 Win32 PE 資源

使用登錄字串重新導向