我正在设计一个屏幕键盘,
我需要确定用户设置的是哪种语言以及他现在在其他线程中使用的是哪种语言,
即我需要知道在任务栏语言切换器中选择的语言:
附言当前区域性返回屏幕键盘应用程序中使用的语言,这不是我正在寻找的情况。
最佳答案
解决方案是获取前景窗口的键盘布局,然后将其应用于屏幕键盘,并以通常的方式检查语言。
IntPtr fore = GetForegroundWindow();
uint tpid = GetWindowThreadProcessId(fore, IntPtr.Zero);
IntPtr hKL = GetKeyboardLayout(tpid);
hKL = (IntPtr)(hKL.ToInt32() & 0x0000FFFF);
InputLanguageManager m = InputLanguageManager.Current;
m.CurrentInputLanguage = new System.Globalization.CultureInfo(hKL.ToInt32());
//IntPtr i = LoadKeyboardLayout(hKL.ToString(), 1);
InputLanguage = InputLanguageManager.Current.CurrentInputLanguage.ToString();
关于c# - 如何判断当前输入的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951067/