2012-03-27 65 views
3

目前,我想把我的身邊MUI頭,並得到一些問題GetSystemDefaultUILanguage - 它不返回的語言,我期望:獲取Windows啓動消息的語言

Welcome screen and new user accounts settings dialog

用戶可以設置在「歡迎屏幕和新用戶帳戶設置」對話框中用於Windows啓動消息的語言 - 聲稱將語言設置複製到系統帳戶。因此,我期望能夠使用GetSystemDefaultUILanguage獲得啓動消息所使用的語言 - 但它似乎只能用用於最初安裝操作系統的語言回來。我如何獲得啓動消息語言?

回答

1

看來GetSystemDefaultUILanguage會返回操作系統最初安裝的語言。至少在2K8 R2(可能還有其他Vista後的操作系統)中,用戶可以修改用於啓動消息的語言 - 但這不幸並未通過GetSystemDefaultUILanguage反映出來。

然而,它可以通過註冊表查找。語言的下面的值存儲的文字說明(如EN-US):

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\Settings\PreferredUILanguages 

此值僅似乎與安裝了多語種(也可能是機器設置爲僅當用戶改變了歡迎屏幕語言)。

因此,爲了獲得當前歡迎界面語言,流量似乎是:

  • 嘗試讀取PreferredUILanguages
  • 如果發現,解析到一個語言ID
  • 否則,調用GetSystemDefaultUILanguage
  • 根據返回的語言加載相應的語言資源ID

This woul如果我們不試圖在啓動時使用不同的語言展示事物,那麼不要這麼痛苦!通常你可以使用GetUserDefaultUILanguage。

+0

這對於Windows 7來說是否一樣?我沒有看到我在那個關鍵的價值... – 2013-03-04 20:00:54