【问题标题】:windows inputlanguage changed c#windows输入语言改变了c#
【发布时间】:2014-05-11 14:15:39
【问题描述】:

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

我试过这段代码:

 private void MainForm_InputLanguageChanged(object sender, InputLanguageChangedEventArgs e)
    {

    }

但只有当表单处于活动状态且集中注意力时,它才会改变表单中的语言!示例:我将打开谷歌浏览器并更改语言,不会调用此函数。

我需要更改特定的 Windows 键盘。不是表单输入语言改变了..

这对我来说非常重要,我为此要花一个星期的时间,所以请帮忙。

各位。

【问题讨论】:

  • 你试过什么?听起来您要么必须实现一个关键侦听器并希望用户没有更改他的默认设置(糟糕,甚至不会尝试),要么尝试找到 Windows 存储该值的位置并跟踪它.. . 无论哪种方式听起来都很痛苦:)
  • 我听说过GetKeyboardLayoutName()...你知道这个函数吗?

标签: c#


【解决方案1】:

据我所知,在 Windows 中,输入语言是特定于进程的。因此,您获得了应用程序的 InputLanguageChanged 事件。如果您想在全球范围内收到有关语言更改的通知,则应自行完成。例如,定期检查活动窗口并使用 GetKeyboardLayout API 函数获取键盘布局。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-03
    • 2021-03-26
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多