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

本文关键字:输入 语言 应用程序 其他 | 更新日期: 2023-09-27 18:30:33

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

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

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

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

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

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

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

这可能是远程应用程序上此 Switch 输入语言的副本

此参考也会有所帮助。 http://msdn.microsoft.com/en-us/library/ms724947