尋找重新導向的字串
本主題討論尋找重新導向登錄字串的程式設計指示。 如需詳細資訊,請參閱 使用登錄字串重新導向。
載入Language-Neutral登錄值
在 Windows Vista 和更新版本上,MUI 應用程式會使用語言中性登錄值,允許存取儲存在字串資源表中的語言特定字串。 如需詳細資訊,請參閱 使用登錄字串重新導向建立Language-Neutral資源。
從登錄讀取語言中性值的應用程式程式碼應該呼叫 RegLoadMUIStringW,以正確的使用者介面語言載入字串。 如果使用此函式,您的應用程式就不需要明確地處理資源載入。
如果您要將現有的應用程式更新為登錄的語言中性用法,您通常會保留現有的字串值、當地語系化為英文或登錄中的其他單一語言,做為後援和回溯相容性。 在登錄中保留常值字串可讓應用程式在 呼叫 RegLoadMUIStringW 失敗時回復為常值字串。 您必須決定如何實作這類後援,因為 MUI 不支援這類實作。
使用殼層 API 從登錄設定快捷方式字串
您的應用程式可以使用殼層 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 相容方式。 這一行表示儲存在 Windows XP) Msascui.exe (的字串識別碼 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::GetString。 呼叫 IQueryAssociations::Init會指定檔案類型,例如 「.txt」。 呼叫 IQueryAssociations::GetString必須指定ASSOCSTR_FRIENDLYDOCNAME做為字串識別碼。
註冊 Microsoft Management Console 嵌入式管理單元字串未從登錄讀取
您的應用程式可以使用 Microsoft Management Console (MMC) 嵌入式管理單元來裝載其管理工作。 大部分的字串會使用建立 Microsoft Management Console 的字串資源中所述的登錄設定來處理為資源,Snap-Ins 使用登錄字串重新導向。 不過,有些嵌入式管理單元會註冊 MMC 無法從登錄讀取的登錄字串值。 在此情況下,嵌入式管理單元必須使用與 MUI 相容的 ISnapinAbout 介面來取得值。
從登錄設定 Windows 服務的顯示名稱和描述
如果您的 MUI 應用程式使用 Windows 服務,它必須顯示服務顯示名稱和描述。 The associated resources are discussed in "Create String Resources for a Windows Service" in Using Registry String Redirection.
若要設定服務顯示名稱,MUI 應用程式會呼叫 CreateService 或 ChangeServiceConfig。 名稱是格式為 「 @<PE-path>,-<stringID>[;<comment>]
」 的字串。 例如,如果您的服務是由路徑為 %ProgramFiles%\%MyPath%\MyDll.dll的.dll檔案所實作,而語言特定顯示名稱的字串識別碼為 347,則會將 參數指定為 「 @%ProgramFiles%\\%MyPath%\\MyDll.dll,-347
」。 雙反斜線 (\\) 是必要的,因為 C/C++ 會使用反斜線作為字串中的逸出字元。
若要設定語言特定的服務描述,MUI 應用程式應該讓SERVICE_DESCRIPTION結構的lpDescription成員指出格式為 「 @<PE-path>,-<stringID>[;<comment>]
」的字串,參考適當的字串識別碼。 然後,應用程式會呼叫 ChangeServiceConfig2 ,並將參數 dwInfoLevel 指定為 SERVICE_CONFIG_DESCRIPTION,並將參數 lpInfo 指定為 SERVICE_DESCRIPTION 結構。
相關主題