如何获取当前的输入语言 c++
How to get current input language c++?
如何在 c++ 系统范围内获取当前的输入语言。如果我切换到另一个窗口并在那里更改输入语言,我如何知道该语言已更改以及更改为哪种语言?
我认为这取决于操作系统,在Windows中,尝试以下代码:
char szBuf[25];
double thId;
HANDLE hCurrentKBLayout;
hCurrentKBLayout = GetKeyboardLayout(0);
memset(szBuf, 0x00, 25);
ImmGetDescription(hCurrentKBLayout, szBuf, 50);
if(String(szBuf).Length()==0)
strcpy(szBuf,"系统默认");
ShowMessage("current input language is:" + String(szBuf));
正式地,""
的区域设置应该对应于实现定义的区域设置,通常应对应用户希望他的语言是什么。 这是否有效在实践中,很大程度上取决于实施; std::locale().name()
似乎总是在我的"C"
返回Windows机器(即使我没有运行美国版本的视窗)。
更一般地说,可能没有单一的"语言"。 输入例如,在系统级别,通常是语言中性;关键因素是键盘的设置方式(但我经常从美国键盘输入法语或德语),并且一旦字符出现在你的程序中,你如何解释它们(大概,你想知道的是如何解释它们,根据什么约定)。 如果你想知道约定其他程序或操作系统使用,您必须找到一些操作系统特定的手段;这是一种标准,环境变量如LANG
、LC_CTYPE
等都包含这个信息,但如何对不同的约定进行编码变化(尽管我认为最新版本的Windows也支持)Posix标准形式),以及Unix以外的操作系统经常使用还有其他方式,所以你需要一些特定于操作系统的东西。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 如何删除已输入的书以及如何使标题,语言和名称在上面放置空格不会出错?
- 是否可以用类似C/C++(或任何语言)的语言,从作为用户输入的字符串或文件中创建用户定义的数据类型
- 其他语言的Qt键盘输入
- 如何查找当前输入语言
- C++/Win32查找所有键盘输入语言
- 如何获取当前的输入语言 c++
- 无效输入会导致多语言 JSON 消息传递系统中的身份验证绕过
- 如何为我的语言编写自己的Windows输入工具软件
- 更改其他应用程序的输入语言
- 使用c++语言以时间戳作为输入生成V4 UUID
- (c++).非unicode语言(简体中文)输入/输出