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

标签 c# winapi keyboard keyboard-hook

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

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

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

language switcher

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

最佳答案

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

            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/

相关文章:

c# - OnTriggerEnter() 未调用

c++ - 从函数返回动态 C 样式字符串?

c++ - 如何设置多个单选按钮组以获得正确的 Tab 键顺序和键盘交互 (WIN32)?

c++ - 为什么 IStream::Commit 无法将数据写入文件?

c# - 如何获取进程使用的所有内存地址空间?

c# - 以编程方式设置代理地址、端口、用户名、密码

c# - 进程内和进程外托管的 ASP .NET Core 3 + Identity Server 问题

c - fgets 不等待标准输入

C# 控制台俄罗斯方 block 编程。让棋子动起来?

ios - 在 native 、phonegap/Cordova 构建的 iOS 应用程序中更改键盘外观