首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键盘类型(Qwerty或Dvorak)检测

键盘类型(Qwerty或Dvorak)检测
EN

Stack Overflow用户
提问于 2009-05-15 16:16:30
回答 4查看 4.4K关注 0票数 5

我的一个朋友问了我这个问题,它激起了我的好奇心,但我还无法找到解决方案,所以我希望有人会知道。

有没有办法通过编程检测用户正在使用哪种类型的键盘?我对键盘的理解是,在DVORAK键盘上发送给计算机的A信号与在QUERTY键盘上发送给计算机的A信号是相同的。然而,我读过一些关于switch to/from dvorak的方法,其中突出了注册表调整,但我希望有一个机器设置或其他一些我可以查询的东西。

有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-05-15 16:45:07

您可以通过调用GetKeyboardLayoutName() Win32 API方法来完成此操作。Dvorak键盘有特定的名称。例如,U.S. Dvorak布局的名称为00010409。

代码片段:

代码语言:javascript
复制
  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);

    }
  }
票数 3
EN

Stack Overflow用户

发布于 2009-05-15 16:20:11

这可能取决于操作系统。我肯定在某个地方有一个操作系统设置,用来记录键盘的国籍。(德沃夏克被认为是一个国籍,因为法国键盘不同于美国键盘不同于……)

另外,顺便说一句:'A‘是一个不好的例子,因为'A’恰好在dvorak和qwerty中是相同的关键字……B-)

票数 3
EN

Stack Overflow用户

发布于 2009-05-15 16:27:38

您可以通过DirectInput或任何当前的DirectX等效项来完成此操作。我在Dvorak键盘上打字,我购买的游戏中大约有50%会检测到我的键盘,并重新配置默认的键映射以支持它(例如,使用aoe而不是wasd )

是的,正如Brian提到的,“A”在两个键盘上是相同的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/869609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档