键盘有没有NKRO ?微软帮你测

玩家甚至媒体的解读是错的,所以小编在此重点说明一些概念、并分享如何测试。在许多游戏与软体中都会使用组合键功能,也就是同时按下特定几个按键之后就能触发特别的功能,简单的说就是一些动作的快捷键。不过,有时候按不出功能并不是软体的问题,而是键盘内部硬体的问题。
键盘内部为矩阵设计
不管是薄膜式键盘或机械式键盘,内部都有行与列组成的电路图,这些行与列都至少会有16条线路与8条线路交叉形成,组合出共有128个交叉点。目前键盘按键数大约为103键,所以这些电路已经足够使用。由于键盘的按键资讯都是设计在键盘矩阵中,里面每个行与列的交错点都代表着1个按键资讯。当有按键被压下时,键盘就会进行扫描动作来查询是哪颗键被压下。这部分是很容易理解的,不过当使用者同时按下的按键越多时,状况就有点不同。
产生鬼键造成键位冲突
当只有1个按键被压下时,键盘会进行扫瞄行与列资讯来判断,但如果超过1颗按键同时按下时就没这么容易。在同一个井字矩阵电路中的4个按键讯号,如果有同时3个按键被按下,会送出2个行与2个列的资讯,键盘是无法反推判断是哪3个按键,而会认为是4个按键同时按下,这时没有真正按下却被送出的按键就称为鬼键(Ghost Key)。
有些键盘会避免输出错误的按键资讯,选择忽略玩家按下的第3个键,这时便会有按下3个键却只输出2个按键讯号的状况,这些都是为了避免产生鬼键造成键位冲突所采用的一种应变方式。不过有的键位设计则是设法加以改良,注明支援N-Key Rollover(NKRO),也就是可以同时输出多颗按键,不会有键位冲突的问题。也有一些电竞键盘,针对游戏常用的特定按键进行矩阵电路最佳化避免键位冲突,也可以减少玩家出错的机会。

▲薄膜式键盘与机械式键盘内部都是由矩阵电路所组成,此为键盘讯号示意图,实际电路图每家厂商都有所不同。
微软线上进行简易判断键位讯号
透过国外的KeyboardTest付费软体(约新台币768元),或者由台湾玩家Ivan Lin开发的hKBTEST免费软体都能测试,不过无论如何方便性也比不上直接开启网页就能测试。微软设计了一个网页平台,可以让玩家利用网页上的元件就能测试键盘的按键讯号。测试时可以分别将常用的3个键各别测试,比较容易判断出哪些键一起按时会产生鬼键,这些都可以在设定快捷组合键时做为一个重要的参考指标。网址是:http://www.microsoft.com/appliedsciences/KeyboardGhostingDemo.mspx。

▲微软提供线上测试键位冲突问题,直接在网页上就能即时测试。
打字快与键位冲突无关
近来有些玩家与媒体认为,打字输入太快会造成键位冲突,小编在这里可以跟各位挂保证这完全是两回事。键位冲突的发生与否,与打字输入的快慢毫无关系,按下去会产生鬼键的这3个按键,并不会因为速度太快或太慢而改善,千万不要被误导了。
如果以连接介面来说,对于内部设计会造成键位冲突的键盘,就算更改成PS/2与USB都还是会造成键位冲突。唯一差别的在于USB键盘通常都会受到USB规范所限制,只能有6+2键输出,不能像PS/2键盘可以达到全部按键同时输出。况且键盘冲突是键盘内部设计所造成的问题,跟外部输出介面不同没有相对关系。一般玩家看到这里就可以了,如果真的很有兴趣,可以翻阅75期电脑王杂志,会有更详细的说明。
键盘有没有NKRO ?微软帮你测的更多相关文章
- WinForm中为按钮添加键盘快捷键,超简单,亲测有效
博主并没有多少Windows平台下程序的开发经验,一年前使用过MFC设计过一个指纹识别系统的页面,后来就没有使用过几次.现在C#课程实验要求实现一个简易计算器,为了便于快速录入数据,使用键盘会比使用鼠 ...
- .NET下如何拦截鼠标、键盘消息?Win32NET来帮你
Win32NET是一个Win32API的.NET下封装的类库,包含: 1: 常用win32的API的net封装 2:鼠标.键盘.热键hook钩子模块, 3:模拟键盘输入文字(支持各种字符文字.不同语言 ...
- WPF 自定义键盘焦点样式(FocusVisualStyle)
WPF 自带的键盘焦点样式是与传统控件样式搭配的,但 WPF 凭着其强大的自定义样式的能力,做出与传统控件样式完全不同风格的 UI 简直易如反掌.这时,其自带的键盘焦点样式(FocusVisualSt ...
- Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html
一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...
- 深入浅出话VC++(1)——Windows程序内部运行机制
一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...
- VS Code好用到飞起的配置设置
Visual Studio Code是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux.它内置了对JavaScript,TypeScript和Node. ...
- 【.NET与树莓派】上手前的一些准备工作
.NET Iot 不是什么新鲜事物,百科很强大,故老周在此也不必多介绍.现在的时代和老周当年学 QBasic 的时代不同,那时候拉根电话线上网,下载速度只有可怜的 3.5 kb/s.而且还要去店里买上 ...
- Microsoft Build 2016 Day 1 记录
去年今日:Microsoft Build 2015 汇总 今年的 Bulid 时间是 3.30-4.1,第一天的主角主要是 Windows 10.人工智能.HoloLens.小娜等,详细介绍:3 分钟 ...
- [MVC4]ASP.NET MVC4+EF5(Lambda/Linq)读取数据
继续上一节初始ASP.NET MVC4,继续深入学习,感受了一下微软的MVC4+EF5(EntityFramework5)框架的强大,能够高效的开发出网站应用开发系统,下面就看一下如何用MVC4+EF ...
随机推荐
- cxf2.7.10 与 spring3.0.5集成
开发环境: NetBeans7.4 Tomcat 6.0.32 一 服务端: 1:新建JavaWeb工程 cxfspring-server,导入jar包如下图所示: 2:在web.xml文件中添加如下 ...
- WPF笔记(2.5 Canvas)——Layout
原文:WPF笔记(2.5 Canvas)--Layout Canvas是最精确的布局容器--绝对定位,此书作者不建议使用,以为控件的大小一般会随着内部字体图片的动态生成而自动变化,所以使用前三种布局是 ...
- struct内存对齐
内存对齐其实是为了在程序运行的时候更快的查找内存而做的一种编译器优化. 我们先看这样一个例子: #include <iostream> using namespace std; struc ...
- Sonar入门(一):简介
什么是Sonar? Sonar是一个开源的代码质量管理平台.它能对代码进行如下7个维度的管理. 使用插件,它可以对20多种语言进行代码质量管理,这其中包括Java,C#,C/C++,PL/SQL等等. ...
- GridBagLayout练习
摘自http://blog.csdn.net/qq_18989901/article/details/52403737 GridBagLayout的用法 GridBagLayout是面板设计中最复杂 ...
- 分享几种Linux软件的安装方法
Linux软件安装由于不同的Linux分支,安装方法也互不相同,介绍几种常见的安装方法. 1. 源码安装, 对于本身具有开源血统的Linux系统来说,几乎所有的开源软件都支持在Linux平台运 ...
- 为啥NSString的属性要用copy而不用retain
之前学习生活中,知道NSString的属性要用copy而不用retain,可是不知道为啥,这两天我研究了一下,然后最终明确了. 详细原因是由于用copy比用retain安全,当是NSString的时候 ...
- 在Android中建立Android project没有R.java文件
最近在搞一下安卓,在新建Android工程,既然发现在gen目录下没有R.java这个文件.我当时感到很郁闷,上次建Android工程才好好的,怎么这次既然报错没有R.java.后来我用以下才解决了. ...
- linux C连接mysql
linux 环境下C语言连接数据库首先要配置环境 1,确定你的linux下安装mysql我们可以做个测试. 打开你的终端,在终端下输入:service mysqld status [root@bogo ...
- apache启动问题: Could not reliably determine the server's fully qualified domain name
[root@rusky]# service httpd startStarting httpd: httpd: apr_sockaddr_info_get() failed for ruskyhttp ...