我想更改活动窗口的输入语言。问题是活动窗口不是我的应用程序。我知道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