【问题标题】:How To Detect Language Changes While Runtime ? (C#)如何在运行时检测语言变化? (C#)
【发布时间】:2013-09-15 16:09:10
【问题描述】:

我想检测用户何时更改键盘上的语言。 例如,我想知道用户是否使用英语,然后将语言更改为法语。 我想从所有活动线程中检测到这种变化。我的意思是我想知道这种变化何时发生在操作系统中,而不是在某个特定线程中。 我正在使用 C# 语言。(控制台应用程序)

谁能帮我弄清楚?我很乐意提供一些帮助.. 谢谢。

【问题讨论】:

  • 用户更改了他的键盘布局,而不是他的语言,也不是他的 CurrentCulture。 Windows 会一直跟他说英语。更改语言需要注销+登录和安装正确 MUI 包的 Windows 终极版。在这一点上,你也会说法语。无论如何,从控制台模式应用程序对此做出响应是一个失败的原因。
  • @HansPassant,我的意思是你在键盘上按 Alt + Shift 时发生的同样的事情。在这种情况下,这也是一个失败的原因吗?如果是,为什么?

标签: c# console-application


【解决方案1】:

如果您使用 WinForms 进行开发,请使用 InputLanguageChanging 事件

【讨论】:

  • 实际上我正在使用控制台应用程序。你有一些控制台应用程序的例子吗?
【解决方案2】:

这是获取当前键盘布局的方式:How to determine the current input language?

这是你如何改变它:Change Keyboard Layout for Other Process

【讨论】:

  • 这不是问题。
  • 自从?我的意思是 Aviv 可能更专注于检测操作系统中输入语言的更改,我不确定您是否比我发布的第一个 stackoverflow 链接中描述的更进一步......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
  • 2018-11-03
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
相关资源
最近更新 更多