C# windows InputC语言已更改#

C# windows InputC语言已更改#,c#,C#,我正在Visual studio(windows应用程序)中开发一个简单的程序,我需要知道用户何时更改键盘语言(我不关心该语言是什么或现在是什么) 我尝试过以下代码: private void MainForm_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e) { } 但是,只有当表单处于活动状态且焦点集中时,它才会在表单中获得语言变化!示例:我将打开Google chrome并更改语言

我正在Visual studio(windows应用程序)中开发一个简单的程序,我需要知道用户何时更改键盘语言(我不关心该语言是什么或现在是什么)

我尝试过以下代码:

 private void MainForm_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e)
    {

    }
但是,只有当表单处于活动状态且焦点集中时,它才会在表单中获得语言变化!示例:我将打开Google chrome并更改语言,此函数将不会被调用

我需要更改特定的windows键盘。未更改表单inputlanguage

这对我来说非常重要,因为这件事,我要为此伤脑筋一个星期,所以请帮助我


各位。

据我所知,在Windows中,输入语言是特定于进程的。因此,您将获得应用程序的InputLanguageChanged事件。如果你想得到全球语言变化的通知,你应该自己做。例如,定期检查活动窗口并使用GetKeyboardLayout API函数获取键盘布局。

您尝试了什么?听起来你要么需要实现一个密钥侦听器,希望用户没有更改默认设置(糟糕,甚至不想尝试),要么尝试查找windows存储该值的位置,并跟踪它。。。听起来很痛苦:)我听说过GetKeyboardLayoutName()。。。你知道这个函数吗?