GetSystemDefaultLangID 与系统什么设置有关

在Windows操作系统中,我们可以通过GetSystemDefaultLangID 来获取系统语言,但是可能你不知道的是:到底是修改系统的哪个设置会影响到GetSystemDefaultLangID的返回值!

1、微软官方的描述

https://docs.microsoft.com/en-us/windows/win32/api/winnls/nf-winnls-getsystemdefaultlangid

2、一图胜千言

需要注意的一点:在操作系统中,需要通过以下方式的修改,才能影响到GetSystemDefaultLangID()的返回值。修改“区域”和“语言”是不会改变系统本身的语言的。

在这里插入图片描述

3、C++示例代码

#include <stdio.h>
#include <Winnls.h>
#pragma comment(lib,"Kernel32.lib")
 
int main(void)
{
	LANGID langId = GetSystemDefaultLangID();
	switch (langId)
	{
	case 0x0804:
		printf("China\n");
		break;
	case 0x0409:
		printf("English\n");
		break;
	case 0x0416:
		printf("Portugal\n");
		break;
	case 0x0c0a:
		printf("Spain\n");
		break;
	}
	return 0;
}

其他参考文章

https://blog.csdn.net/chenlycly/article/details/38620477
https://blog.csdn.net/lonelyrains/article/details/24377981

这个问题可以分为两部分:1)如何获取操作系统语言设置;2)如何判断语言设置是中文还是英文。 1. 获取操作系统语言设置 在C语言中,可以使用Windows API函数GetSystemDefaultLangID来获取操作系统语言设置。代码如下: ``` #include <windows.h> #include <stdio.h> int main() { LANGID langid = GetSystemDefaultLangID(); printf("Language ID: 0x%x\n", langid); return 0; } ``` 这段代码会输出操作系统语言设置的ID值,例如英文为0x409,中文为0x804。 2. 判断语言设置是中文还是英文 操作系统语言设置ID值与具体的语言名称之间存在对应关系,可以根据这个对应关系判断语言设置是中文还是英文。以下是常见语言设置ID值和对应的语言名称: | 语言设置ID值 | 语言名称 | |--------------|----------| | 0x409 | 英文 | | 0x404 | 繁体中文 | | 0x804 | 简体中文 | | 0x411 | 日语 | | 0x412 | 朝鲜语 | | 0x404 | 台湾语 | 因此,可以根据获取到的语言设置ID值来判断操作系统语言是中文还是英文。代码如下: ``` #include <windows.h> #include <stdio.h> int main() { LANGID langid = GetSystemDefaultLangID(); if (langid == 0x409 || langid == 0x411 || langid == 0x412) { printf("English\n"); } else if (langid == 0x804 || langid == 0x404) { printf("Chinese\n"); } else { printf("Unknown\n"); } return 0; } ``` 这段代码会输出操作系统语言是中文还是英文。如果语言设置ID值不在上表中,则输出Unknown。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellokandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值