win10,设定「键盘布局」为【日语键盘(106/109)】【英语键盘(101/102)】

■前言

系统升级,日文输入法下,键盘将会变为日文键盘。

需要将其改为中文键盘

 

1.时间和语言

 

2.语言 ⇒ 日语  ⇒ 选项

 

 

3.硬件键盘布局 (需要有管理员权限,才能看到)

---

【英文键盘(101/102)】

【日语键盘(106/109)】

---

4

 

5

 

 

---

在.NET (C#) 中获取 Windows 系统的输入法列表并不是一件直接的事,因为并没有内置的方法可以直接提供这个功能。但是你可以通过调用Windows API来间接地实现这一需求。 首先你需要了解的是,在Windows操作系统上每个线程都有它自己的输入语言设置,并且应用程序可以有自己的默认输入语言而不必遵循系统的全局设定。这表示我们所得到的结果将是针对当前活动窗口或进程有效的输入语言列表而不是整个系统的完整集合。 为了获取可用的键盘布局/输入法信息,我们可以利用 `GetKeyboardLayoutList` 函数从用户模式下获得所有已安装的语言条目的句柄数组,然后进一步处理它们以提取具体的描述文本等细节: ```csharp using System; using System.Runtime.InteropServices; public class InputMethodHelper { [DllImport("user32.dll")] private static extern int GetKeyboardLayoutList(int nBuff, IntPtr[] lpList); public static List<string> GetInputLanguages() { // 获得键盘布局的数量 var numKeyboards = GetKeyboardLayoutList(0, null); if(numKeyboards == 0) return new List<string>(); var layouts = new IntPtr[numKeyboards]; // 填充layouts数组 GetKeyboardLayoutList(layouts.Length, layouts); var inputLanguages = new List<string>(); foreach(var layout in layouts){ string langName = Microsoft.Win32.CultureInfo.GetCultureInfo( Convert.ToUInt32(layout.ToInt64()) & 0x7fffffff).EnglishName; inputLanguages.Add(langName); } return inputLanguages; } } ``` 请注意上述代码适用于大部分情况下的基本用途,但它并不一定能够区分所有的细微差别如特定于版本的不同变体(例如,两个略有差异的日语IME)。此外对于某些特殊类型的输入法,比如手写板识别、语音输入或其他非传统字符输入手段来说可能会有所限制。 以上是一个简单的例子,用于演示如何使用API函数检索出与当前环境关联的一系列有效输入语言选项并将其转换成易于理解的形式返回给调用者。实际应用中可能需要根据具体情况调整和完善此段程序的功能性和兼容性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值