【问题标题】:Getting current Windows system input language and notifications when the language changes在语言更改时获取当前的 Windows 系统输入语言和通知
【发布时间】:2010-09-15 16:10:40
【问题描述】:

我正在屏幕键盘应用程序上书写。 键盘在单独的进程中运行,应用程序窗口位于最上面并且没有获得焦点。当我在应用程序之间切换时,语言会改变。如何在工具栏上获取当前选择的语言,如何在更改时收到通知?

.net 的 InputLanguageManager 和 InputLanguage 类只能对使用它们的应用程序执行此操作。

我发现更改语言时会发送 WM_INPUTLANGCHANGE 消息。但此消息仅发送到焦点窗口。

Windows 7 中的 osk.exe 应用程序可以做到这一点。 请给我一些建议如何实现这种行为。

【问题讨论】:

    标签: c# .net c winapi


    【解决方案1】:

    Google 的一次快速旅行给了this result。这似乎表明系统挂钩是解决此问题的正确方法。

    【讨论】:

      【解决方案2】:

      全局挂钩运行良好,但 WM_INPUTLANGCHANGE 和 WM_INPUTLANGCHANGEREQUEST 仅在您通过按热键或工具栏上的更改输入语言时发送。但是,当您在具有不同输入语言的应用程序之间切换时,工具栏上的语言会发生变化,但不会发送任何 Windows 消息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-20
        相关资源
        最近更新 更多