如何判断当前的输入语言?

2024-01-08

我正在设计一个屏幕键盘,

我需要确定用户设置了哪种语言以及他现在在其他线程中使用哪种语言,

即我需要知道任务栏语言切换器中选择的语言:

附:当前文化返回屏幕键盘应用程序中使用的语言,这不是我正在寻找的情况。


解决方案是获取前台窗口的键盘布局,然后将其应用到屏幕键盘,并以通常的方式检查语言。

            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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何判断当前的输入语言? 的相关文章

随机推荐