键盘一直是用户使用频率高的
PC配件之一,大家可能常会遇到键盘不能使用的情况,那么能否通过一个程序来判断键盘的好坏呢?答案是肯定的。Passmark公司推出的KeyboardTest键盘测试程序可以帮助我们判定键盘到底是好还是坏。
KeyboardTest的使用方法非常简单,按下键盘的某个按键,相应的键位变绿就代表该键通过测试。不过由于该软件可选的键盘种类并不丰富,可能并不适合大多数人的键盘。但不要着急,因为只需通过一些小小的改动,就能让KeyboardTest支持不同键位的键盘。下面我们就教大家利用这款软件,打造专属自己的键盘测试程序。本文使用的KeyboardTest为3.0版本,各大软件下载网站均提供了下载链接。
图1:KeyboardTest默认可选择6款键盘,仍显偏少
如果想让KeyboardTest支持你的键盘,首先就要了解这款软件是如何对键盘按键进行匹配和测试的,并找到其中的规律,这样才能根据自己键盘的差异进行修改。为此,弄清楚KeyboardTest的工作原理就显得至关重要。在该软件的安装文件夹里,我们可以看到与KeyboardTest中每个可选的键盘分别对应BMP和KBL两个文件,其中BMP是键盘的图片,而KBL文件就是控制代码。如果需要KeyboardTest支持更多种类的键盘,不仅要更换相应的键盘图片,更主要的是要弄懂KBL文件里控制代码的作用,这样才能进行修改以匹配不同键位的键盘。
图2
首先,大家用记事本打开软件目录下的AT107+Mouse.kbl文件,可以看到AT107键盘的控制代码(图2)。控制代码是KeyboardTest的核心部分,如果能搞懂这些代码的原理,那么大家就能轻松编写适合自己键盘的控制代码。因此,我们选择了其中的一段代码,为大家讲解其中的奥秘。
图3
以“192,41,‘`’,‘false’,‘KTSTATUSUP’,0,26,118,30,29”为例。当我们启动KeyboardTest后,按下标准按键部分数字1键左边的“`”键时可以看到控制代码中的192,41其实就是“`”的键编码(图3),而紧跟键编码的“`”就是代表相应按键的名称。那“false”和“KTSTATUSUP”又表示什么呢?在控制代码里,“false”代表键盘标准按键部分,即传统键盘的左半部分。与之对应的是“true”,代表扩展键盘部分。而“KTSTATUSUP”是表示该键参与测试,如果是“
KTSTATUSNOTEST”则表示该键不参与测试。
那代码后面的一串数字“0,26,118,30,29”又代表什么呢?这其实就是表明该按键所处的键位。其中0不要做任何修改,这是一个保留值。“26”代表按键的左右位置,数值越大越靠右,反之亦然;“118”代表按键的上下位置,数值越大越向下;“30”代表按键的长度,数值越大表示按键越长;“29”代表按键的宽度,数值越大表示按键越宽。
因此,每个按键的代码必须由“键编码”,“按键名称”,“按键所属的键盘部分(标准/扩展)”,“按键是否参与测试”,“0”,“按键的左右位置”,“按键的上下位置”,“按键的长度”,“ 按键的宽度”组成。而相应按键的参数,可以借鉴AT107+Mouse.kbl文件里的代码。下面我们就以ThinkPad笔记本电脑键盘(以下简称ThinkPad键盘)为例,把KeyboardTest变成其专用的键盘测试程序。
图4
首先我们需要用数码相机给ThinkPad键盘拍照(图4),完成拍照后必须将键盘图片保存为700×340像素、256色,且命名为ThinkPad.bmp,并将其放到测试程序安装目录下。然后创建ThinkPad.kbl文件,填写相应的代码。需要注意的是输入代码时一定要确保没有空行,否则测试程序无法正常运行。由于代码篇幅太大,本文无法一一罗列,下面就节选其中一段来讲解,以此类推。
以ThinkPad键盘为例,在“VK_ESCAPE”,01,“Esc”,“false”,“KTSTATUSUP”,0,15,10,38,29之后应加入以下代码:
44,55, “Print”“, true”“, KTSTATUSUP”,0,425,20,38,26
145,70, “Scroll”“, false”“, KTSTATUSUP”,0,465,20,38,26
19,69, “Pause”“, false”“, KTSTATUSUP”,0,505,20,38,26
45,82, “Ins”“, true”“, KTSTATUSUP”,0,565,20,38,26
36,71, “Home”“, true”“, KTSTATUSUP”,0,605,20,38,26
33,73, “PgUp”“, true”“, KTSTATUSUP”,0,645,20,38,26
以上代码包括有对“ESC”、“Print”、“ Scroll”等功能键的控制。由于ThinkPad键盘的键位与传统键盘有所不同,传统键盘的顶部为“ESC”和“F1~F12”等按键,而ThinkPad键盘则将传统键盘的功能键全部移至顶部,在“ESC”之后是“Print”、“Scroll”等功能键,因此在第一段代码中,就将上述功能键的控制代码添加进去。接下来,用户只需根据键位的不同,按部就班地添加即可。
图5:ThinkPad键盘与普通键盘的代码对比
我们将ThinkPad键盘与普通键盘的控制代码进行对比,在前两段的代码里可以清楚看到因键位不同相应代码的添加和删减(图5)情况。不过就算键位布局不同,包括ThinkPad键盘在内的键盘依然可从上至下将按键划分为六段,每一段之间的代码用#Row来间隔,如“#Row2、#Row3,……#Row6”。
图6
在修改ThinkPad键盘代码时需要注意两点,其一是禁用TouchPad中键测试,其二是代码不支持快捷按键和电源键。在完成ThinkPad键盘的代码修改后,KeyboardTest里将出现ThinkPad选项(图6)。
图7:所有测试均顺利通过
到此,我们已经完成了打造ThinkPad键盘的测试。当然,大家也可以据此去打造属于自己的专有键盘测试程序。怎么样?酷吧!