我被朋友问了这个问题,它激起了我的好奇心,但我还是找不到解决办法,所以我希望有人知道.
有没有办法以编程方式检测用户使用的键盘类型?我对键盘的理解是,在DVORAK键盘上发送到计算机的'A'信号与发送到计算机上用于QUERTY键盘中'A'的信号相同.但是,我已经阅读了关于切换到/从dvorak的方法,突出显示注册表调整,但我希望有一个机器设置或其他一些我可以查询.
有任何想法吗?
您可以通过调用 GetKeyboardLayoutName() Win32 API 方法来完成此操作。德沃夏克键盘有特定的名称。例如,US Dvorak 布局的名称为 00010409。
代码片段:
public class Program
{
const int KL_NAMELENGTH = 9;
[DllImport("user32.dll")]
private static extern long GetKeyboardLayoutName(
System.Text.StringBuilder pwszKLID);
static void Main(string[] args)
{
StringBuilder name = new StringBuilder(KL_NAMELENGTH);
GetKeyboardLayoutName(name);
Console.WriteLine(name);
}
}
Run Code Online (Sandbox Code Playgroud)