【问题标题】:Change input language of another application更改另一个应用程序的输入语言
【发布时间】:2012-04-20 20:20:57
【问题描述】:

我想更改活动窗口的输入语言。 问题是活动窗口不是我的应用程序。 我知道InputLanguage.CurrentInputLanguage = lang;,但它会更改我的 WinForms 应用程序的语言,而不是活动应用程序的语言。

总结:我的情况是我的程序监听任何键盘事件(即使 它没有聚焦)并在我按 F1 时执行代码。

我希望按下 F1 将语言更改为记事本中的希伯来语,这是我按下 F1 时的活动应用程序。

我对低级解决方案或高级解决方案都感兴趣。

【问题讨论】:

标签: c# c++ winapi keyboard input-language


【解决方案1】:

您应该知道另一个应用程序的hWnd 并为它发布消息

    public void InputLangChangeRequest(IntPtr hwnd, InputLanguage language)
    {
        IntPtr handle = InputLanguage.Handle;
        PostMessage(hwnd, WM_INPUTLANGCHANGEREQUEST, IntPtr.Zero, handle);
    }

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-09
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 2020-06-23
      相关资源
      最近更新 更多