如何获得系统语言?

TwoChars001 2003-06-10 04:17:32
我指的是Windows的语言版本,譬如英文版,中文版之类的,而不是用GetSystemDefaultLangID()获得的那个语言。请问有神么方法获得么?谢谢
...全文
789 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangsiwei 2003-06-16
  • 打赏
  • 举报
回复
读取注册表来获取当前系统语言信息。具体注册表位置是:

Key: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Locale
Item: (默认)
Value: 00000804 表示Chinese(PRC),说明是中文
00000409 表示美国英语,说明是西文
sunyard 2003-06-16
  • 打赏
  • 举报
回复
通过取kernel32.dll的文件信息可以得到Windows的语言版本和其他的一些信息。


下面是我写的简单代码:
使用的函数有:
GetFileVersionInfoSize
GetFileVersionInfoVerQueryValue
VerQueryValue


struct LANGANDCODEPAGE {
WORD wLanguage;
WORD wCodePage;
}* lpTranslate;


int len;
if ( (len = GetFileVersionInfoSize("kernel32.dll",0)) > 0)
{
char* buffer = new char[len];
GetFileVersionInfo("kernel32.dll",0,len,buffer);
unsigned cbTranslate;
VerQueryValue(buffer,
TEXT("\\VarFileInfo\\Translation"),
(LPVOID*)&lpTranslate,
&cbTranslate);
//
//这里通过lpTranslate[i].wLanguage判断语言
//

// Read the file description for each language and code page.
char SubBlock[100];
for( int i=0; i < (cbTranslate/sizeof(struct LANGANDCODEPAGE)); i++ )
{
wsprintf( SubBlock,
TEXT("\\StringFileInfo\\%04x%04x\\ProductVersion"), //ProductVersion取得版本信息,ProductName取得操作系统名称,...
lpTranslate[i].wLanguage,
lpTranslate[i].wCodePage);

// Retrieve file description for language and code page "i".
char* lpBuffer;
unsigned dwBytes;
VerQueryValue(buffer,
SubBlock,
(void**)&lpBuffer,
&dwBytes);
}
delete buffer;
}
xinhe007 2003-06-15
  • 打赏
  • 举报
回复
再顶
guoyin 2003-06-15
  • 打赏
  • 举报
回复
帮你顶了
TwoChars001 2003-06-15
  • 打赏
  • 举报
回复
UP
ahphone 2003-06-10
  • 打赏
  • 举报
回复
GetACP()呢?
TwoChars001 2003-06-10
  • 打赏
  • 举报
回复
我需要的是譬如XP英文版,XP中文版,而不是XP使用的中文语言(实际是E文版本)
TwoChars001 2003-06-10
  • 打赏
  • 举报
回复
谢谢,但是用GetSystemDefaultLangID()确实不行啊
feiniaoliang 2003-06-10
  • 打赏
  • 举报
回复
GetSystemDefaultLangID()
GetUserDefaultLangID()

Identifier Language
0x0000 Language Neutral
0x0400 Process Default Language
0x0401 Arabic (Saudi Arabia)
0x0801 Arabic (Iraq)
0x0c01 Arabic (Egypt)
0x1001 Arabic (Libya)
0x1401 Arabic (Algeria)
0x1801 Arabic (Morocco)
0x1c01 Arabic (Tunisia)
0x2001 Arabic (Oman)
0x2401 Arabic (Yemen)
0x2801 Arabic (Syria)
0x2c01 Arabic (Jordan)
0x3001 Arabic (Lebanon)
0x3401 Arabic (Kuwait)
0x3801 Arabic (U.A.E.)
0x3c01 Arabic (Bahrain)
0x4001 Arabic (Qatar)
0x0402 Bulgarian
0x0403 Catalan
0x0404 Chinese (Taiwan Region)
0x0804 Chinese (PRC)
0x0c04 Chinese (Hong Kong SAR, PRC)
0x1004 Chinese (Singapore)
0x0405 Czech
0x0406 Danish
0x0407 German (Standard)
0x0807 German (Swiss)
0x0c07 German (Austrian)
0x1007 German (Luxembourg)
0x1407 German (Liechtenstein)
0x0408 Greek
0x0409 English (United States)
0x0809 English (United Kingdom)
0x0c09 English (Australian)
0x1009 English (Canadian)
0x1409 English (New Zealand)
0x1809 English (Ireland)
0x1c09 English (South Africa)
0x2009 English (Jamaica)
0x2409 English (Caribbean)
0x2809 English (Belize)
0x2c09 English (Trinidad)
0x040a Spanish (Traditional Sort)
0x080a Spanish (Mexican)
0x0c0a Spanish (Modern Sort)
0x100a Spanish (Guatemala)
0x140a Spanish (Costa Rica)
0x180a Spanish (Panama)
0x1c0a Spanish (Dominican Republic)
0x200a Spanish (Venezuela)
0x240a Spanish (Colombia)
0x280a Spanish (Peru)
0x2c0a Spanish (Argentina)
0x300a Spanish (Ecuador)
0x340a Spanish (Chile)
0x380a Spanish (Uruguay)
0x3c0a Spanish (Paraguay)
0x400a Spanish (Bolivia)
0x440a Spanish (El Salvador)
0x480a Spanish (Honduras)
0x4c0a Spanish (Nicaragua)
0x500a Spanish (Puerto Rico)
0x040b Finnish
0x040c French (Standard)
0x080c French (Belgian)
0x0c0c French (Canadian)
0x100c French (Swiss)
0x140c French (Luxembourg)
0x040d Hebrew
0x040e Hungarian
0x040f Icelandic
0x0410 Italian (Standard)
0x0810 Italian (Swiss)
0x0411 Japanese
0x0412 Korean
0x0812 Korean (Johab)
0x0413 Dutch (Standard)
0x0813 Dutch (Belgian)
0x0414 Norwegian (Bokmal)
0x0814 Norwegian (Nynorsk)
0x0415 Polish
0x0416 Portuguese (Brazilian)
0x0816 Portuguese (Standard)
0x0418 Romanian
0x0419 Russian
0x041a Croatian
0x081a Serbian (Latin)
0x0c1a Serbian (Cyrillic)
0x041b Slovak
0x041c Albanian
0x041d Swedish
0x081d Swedish (Finland)
0x041e Thai
0x041f Turkish
0x0421 Indonesian
0x0422 Ukrainian
0x0423 Belarusian
0x0424 Slovenian
0x0425 Estonian
0x0426 Latvian
0x0427 Lithuanian
0x0429 Farsi
0x042a Vietnamese
0x042d Basque
0x0436 Afrikaans
0x0438 Faeroese
akiy 2003-06-10
  • 打赏
  • 举报
回复
没错!
GetSystemDefaultLangID()

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧