c# 请问win10操作系统中如何获取输入法列表?

当前网络上提供的解决方案,都是使用InputLanguage类提供的方法,但是这种方法在win10操作系统中是**获取不到**输入法列表的,请问有什么别的方式可以获取设置输入法?
经过我实际测试,在WIN10下,**InputLanguage**只能取到中文、英文输入,不能检测到具体的输入法;另外,网上提供的读**取注册表的**方式,在WIN10下也行不通,注册表中根本没有相关的项。如下:
for (int i=0 ; i< TotalKbLayout ; i++)
{
string RegKey=String.Format("System//CurrentControlSet//Control//Keyboard Layouts//{0:X8}",KbList[i]);
RegistryKey rk=Registry.LocalMachine.OpenSubKey(RegKey);
if (rk==null)
continue;
string ImeName=(string)rk.GetValue("layout text");
if (ImeName==null)
continue;
FImes.Add(ImeName, KbList[i]);
}

楼主解决问题了吗,我也困扰了好久

我也遇到这个问题了 你们解决了没?

提供一个可以参考的逻辑(Delphi版),从注册表,可以获取win10的输入法列表;只是win10安全度变高,无法调用方法的模式直接更改输入法;不过可以通过模拟键盘的方式,进行输入法切换;后续如果优化,则再更新解答;
具体实现方式参考:


模拟按键可以参考:
keybd_event(16,0,0,0); //Shift按键
keybd_event(17,0,0,0);//Ctrl按键
keybd_event(17,0,KEYEVENTF_KEYUP,0);//松开Ctrl按键
keybd_event(16,0,KEYEVENTF_KEYUP,0);//松开Shift按键;

不过发现一个问题:win10的输入法获取值是空的,其他输入法可以获取到具体的输入法名字;可能和系统融合的问题吧;

https://www.cnblogs.com/xielong/p/6744338.html