请输入您要查询的百科知识:

 

词条 虚拟键码
释义

§ 介绍

哈,又是「虚拟」,您喜欢这个词吗?虚拟指的是假定存在於思想中而不是现实世界中的一些事物,也只有熟练使用DOS组合语言编写应用程式的程式写作者才有可能指出,为什么对Windows键盘处理如此基本的键码是虚拟的而不是真实的。

§ 说明

对於早期的程式写作者来说,真实的键码由实际键盘硬体产生。在Windows文件中将这些键码称为「扫描码(scan codes)」。在IBM相容机种上,扫描码16是Q键,17是W键,18是E、19是R,20是T,21是Y等等。这时您会发现,扫描码是依据键盘的实际布局的。Windows开发者认为这些代码过於与设备相关了,於是他们试图通过定义所谓的虚拟键码,以便经由与装置无关的方式处理键盘。其中一些虚拟键码不能在IBM相容机种上产生,但可能会在其他制造商生产的键盘中找到,或者在未来的键盘上找到。

您使用的大多数虚拟键码的名称在WINUSER.H表头档案中都定义为以VK_开头。表6-2列出了这些名称和数值(十进位和十六进位),以及与虚拟键相对应的IBM相容机种键盘上的键。下表也标出了Windows执行时是否需要这些键。下表还按数位顺序列出了虚拟键码。

前四个虚拟键码中有三个指的是滑鼠键:

表6-2

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

1 01 VK_LBUTTON   滑鼠左键

2 02 VK_RBUTTON   滑鼠右键

3 03 VK_CANCEL ˇ Ctrl-Break

4 04 VK_MBUTTON   滑鼠中键

您永远都不会从键盘讯息中获得这些滑鼠键代码。在下一章可以看到,我们能够从滑鼠讯息中获得它们。VK_CANCEL代码是一个虚拟键码,它包括同时按下两个键(Ctrl-Break)。Windows应用程式通常不使用此键。

表6-3中的键--Backspace、Tab、Enter、Escape和Spacebar-通常用於Windows程式。不过,Windows一般用字元讯息(而不是键盘讯息)来处理这些键。

表6-3

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

8 08 VK_BACK ˇ Backspace

9 09 VK_TAB ˇ Tab

12 0C VK_CLEAR   Num Lock关闭时的数字键盘5

13 0D VK_RETURN ˇ Enter (或者另一个)

16 10 VK_SHIFT ˇ Shift (或者另一个)

17 11 VK_CONTROL ˇ Ctrl (或者另一个)

18 12 VK_MENU ˇ Alt (或者另一个)

19 13 VK_PAUSE   Pause

20 14 VK_CAPITAL ˇ Caps Lock

27 1B VK_ESCAPE ˇ Esc

32 20 VK_SPACE ˇ Spacebar

另外,Windows程式通常不需要监视Shift、Ctrl或Alt键的状态。

表6-4列出的前八个码可能是与VK_INSERT和VK_DELETE一起最常用的虚拟键码:

表6-4

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

33 21 VK_PRIOR ˇ Page Up

34 22 VK_NEXT ˇ Page Down

35 23 VK_END ˇ End

36 24 VK_HOME ˇ Home

37 25 VK_LEFT ˇ 左箭头

38 26 VK_UP ˇ 上箭头

39 27 VK_RIGHT ˇ 右箭头

40 28 VK_DOWN ˇ 下箭头

41 29 VK_SELECT

42 2A VK_PRINT

43 2B VK_EXECUTE

44 2C VK_SNAPSHOT   Print Screen

45 2D VK_INSERT ˇ Insert

46 2E VK_DELETE ˇ Delete

47 2F VK_HELP

注意,许多名称(例如VK_PRIOR和VK_NEXT)都与键上的标志不同,而且也与卷动列中的识别字不统一。Print Screen键在平时都被Windows应用程式所忽略。Windows本身回应此键时会将视讯显示的点阵图影本存放到剪贴板中。假使有键盘提供了VK_SELECT、VK_PRINT、VK_EXECUTE和VK_HELP,大概也没几个人看过那样的键盘。

Windows也包括在主键盘上的字母和数位键的虚拟键码(数字键盘将单独处理)。

表6-5

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

48-57 30-39 无 ˇ 主键盘上的0到9

65-90 41-5A 无 ˇ A到Z

注意,数字和字母的虚拟键码是ASCII码。Windows程式几乎从不使用这些虚拟键码;实际上,程式使用的是ASCII码字元的字元讯息。

表6-6所示的代码是由Microsoft Natural Keyboard及其相容键盘产生的:

表6-6

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

91 5B VK_LWIN   左Windows键

92 5C VK_RWIN   右Windows键

93 5D VK_APPS   Applications键

Windows用VK_LWIN和VK_RWIN键打开「开始」功能表或者(在以前的版本中)启动「工作管理员程式」。这两个都可以用於登录或登出Windows(只在Microsoft Windows NT中有效),或者登录或登出网路(在Windows for Applications中)。应用程式能够通过显示辅助资讯或者当成捷径键看待来处理application键。

表6-7所示的代码用於数字键盘上的键(如果有的话):

表6-7

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

96-105 60-69 VK_NUMPAD0到VK_ NUMPAD9   NumLock打开时数字键盘上的0到9

106 6A VK_MULTIPLY   数字键盘上的*

107 6B VK_ADD   数字键盘上的+

108 6C VK_SEPARATOR

109 6D VK_SUBTRACT   数字键盘上的-

110 6E VK_DECIMAL   数字键盘上的.

111 6F VK_DIVIDE   数字键盘上的/

最後,虽然多数的键盘都有12个功能键,但Windows只需要10个,而位元旗标却有24个。另外,程式通常用功能键作为键盘加速键,这样,它们通常不处理表6-8所示的按键:

表6-8

十进位 十六进位 WINUSER.H识别字 必需? IBM相容键盘

112-121 70-79 VK_F1到VK_F10 ˇ 功能键F1到F10

122-135 7A-87 VK_F11到VK_F24   功能键F11到F24

144 90 VK_NUMLOCK   Num Lock

145 91 VK_SCROLL   Scroll Lock

另外,还定义了一些其他虚拟键码,但它们只用於非标准键盘上的键,或者通常在大型主机终端机上使用的键。查看/ Platform SDK / User Interface Services / User Input / Virtual-Key Codes,可得到完整的列表。

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/11 10:22:27