2009-08-24 118 views
10

任何人都可以幫助我如何通過win32 API(C/C++)獲得Windows操作系統的語言(英文,中文等)?用於獲取操作系統的語言(本地化信息)的Win32 API?

感謝, Sourabh

+0

這只是沒有那麼簡單。沒有「語言」這樣的東西;併發使用時可能會有多種語言。你能更精確嗎?提示:請閱讀Michael Kaplan的博客[「全部排序」](blogs.msdn.com/michkap/) – MSalters 2009-08-24 14:01:29

+0

@MSalters您應該直接鏈接到[相關文章](http://blogs.msdn.com/b/) michkap /存檔/ 2005/02/01/364707.aspx)。 – 2013-06-10 18:32:09

+0

@SadlyNot:這是一個有點現在已經過時(僅包括XP,這當然是幾乎EOL)的 – MSalters 2013-06-10 18:51:45

回答

6

你可以得到默認的用戶區域(我認爲這是你的要求)使用GetUserDefaultLCID。這會給你一個可以用來確定文化的ID。請參閱here瞭解包含ID和它們所代表的文化的表格。

對於Vista或Windows 7,Microsoft建議使用GetUserDefaultLocaleName

23

如果你問「哪個語言操作系統菜單和對話框中dispalyed」(即,MUI - 多語言用戶界面工具包 - 安裝),使用以下命令:

更多信息:

+3

然後使用GetLocaleInfo與LOCALE_SENGLANGUAGE從LANGID獲得ISO 639。 – Yakeen 2009-08-24 14:38:18

+1

我懷疑這更接近OP的要求,並且比我的答案更全面。 – Xiaofu 2009-08-24 14:43:44

+0

還有一個問題:我只想通過Delphi的win api調用,在區域設置中設置FIELDSEPARATOR。有人可以幫忙嗎?謝謝 – 2017-04-18 07:15:31