Delphi:
//必ず、Registryユニットを引用する。
function getOSLanguage:Integer;
const
LNG_ENG =1 ; //英语
LNG_JPN =2 ; //日本语
LNG_CHN =3 ; //中国语
var
reg: TRegistry;
tmp: String;
oslang:Integer;
begin
tmp := '';
reg := TRegistry.Create;
try
reg.RootKey := HKEY_LOCAL_MACHINE;
if reg.OpenKey('SYSTEM\CurrentControlSet\Control\Nls\Language', False) = True then
begin
if reg.ValueExists('Default') = True Then
tmp := reg.ReadString('Default');
reg.CloseKey;
end;
finally
reg.Free;
end;
oslang := StrToIntDef('$'+tmp, 0);
//デフォルトはOSの言语
Case oslang of
$0409: Result := LNG_ENG;//英语
$0411: Result := LNG_JPN;//日本语
$0804: Result := LNG_CHN;//中国语
else Result := LNG_ENG;//英语
end;
end;
C++:
void getOSLanguage()
{
char regname[]="SYSTEM\\CurrentControlSet\\Control\\Nls\\Language";
char value[] ="0804";//中国语
char OSlanguage[] = "Japanese";
long length=0;
int language = 0;
HKEY hkResult;
int ret=RegOpenKey(HKEY_LOCAL_MACHINE,regname,&hkResult);
if( ret == ERROR_SUCCESS)
{
ret = RegQueryValue(hkResult,regname,value,&length);
if( ret == ERROR_SUCCESS)
{
//英语:0x0409 日本语:0x0411 中国语:0x0804
language = atoi("0x"+value);
}
}
else
{
printf("Registry Open Error!");
}
RegCloseKey(hkResult);
}