更改其他应用程序的输入语言

时间:2012-04-07 17:22:52

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)