當前位置:編程學習大全網 - 編程語言 - 什麽是鍵盤虛擬鍵?

什麽是鍵盤虛擬鍵?

虛擬鍵碼保存在WM_KEYDOWN、WM_KEYUP、WM_SYSKEYDOWN和WM_SYSKEYUP訊息的wParam參數中。此代碼標識按下或釋放的鍵。

虛擬指的是假定存在於思想中而不是現實世界中的壹些事物,也只有熟練使用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,可得到完整的列表。

虛擬鍵表

虛擬鍵與ASCII碼對應的有: '1'-'9','A'-'Z'

vkkeyscan()函數可查看相應字符的實數值.參數為字符;

API常量型 實數值 解釋

VK_LBUTTON 1 滑鼠左鍵

VK_RBUTTON 2 滑鼠右鍵

VK_CANCEL 3 Ctrl+Break

VK_MBUTTON 4 滑鼠中鍵

VK_BACK 8 退格

VK_TAB 9 TAB

VK_CLEAR 12 NUM LOCK關閉時的數字鍵盤5?

VK_RETURN 13 回車

VK_SHIFT 16 Shift

VK_CONTROL 17 Ctrl

VK_MENU 18 Alt

VK_PAUSE 19 Pause Break

VK_CAPITAL 20 Caps Lock

VK_ESCAPE 27 ESC

VK_SPACE 32 空格鍵

VK_PRIOR 33 Page up

VK_NEXT 34 Page down

VK_END 35 End

VK_HOME 36 Home

VK_LEFT 37 左箭頭

VK_RIGHT 38 上箭頭

VK_UP 39 右箭頭

VK_DOWN 40 下箭頭

VK_SELECT 41

VK_PRINT 42

VK_EXECUTE 43

VK_SNAPSHOT 44 Print Screen

VK_INSERT 45 Insert

VK_DELETE 46 Delete

VK_HELP 47

VK_0..9 48..57 主鍵盤0..9

VK_A..Z 65..90 主鍵盤A..Z

VK_LWIN 91 左Win

VK_RWIN 92 右Win

VK_APPS 93 快捷菜單

Reserved 94 保留

VK_SLEEP 95 Sleep

數字鍵盤

VK_NUMPAD0..9 96..105 小鍵盤上的0到9

VK_MULTIPLY 106 小鍵盤上的*

VK_ADD 107 小鍵盤上的+

VK_SEPARATOR 108 分隔符

VK_SUBTRACT 109 小鍵盤上的-

VK_DECIMAL 110 小鍵盤上的.

VK_DIVIDE 111 小鍵盤上的/

VK_NUMLOCK 144 Num Lock

VK_F1..VK_F24 112..135 F1..24

Unassigned 136..145 未定義

VK_SCROLL 145 Scroll Lock

Specific 146..150 特殊用途

Unassigned 151..159 未定義

VK_LSHIFT 160 左Shift鍵

VK_RSHIFT 161 右Shift鍵

VK_LCONTROL 162 左Ctrl鍵

VK_RCONTROL 163 右Ctrl鍵

VK_LMENU 164 左Alt鍵

VK_RMENU 165 右Alt鍵

瀏覽器

VK_BROWSER_BACK A6(166) Browser Back key

VK_BROWSER_FORWARD A7(167) Browser Forward key

VK_BROWSER_REFRESH A8(168) Browser Refresh key

VK_BROWSER_STOP A9(169) Browser Stop key

VK_BROWSER_SEARCH AA(170) Browser Search key

VK_BROWSER_FAVORITES AB(171) Browser Favorites key

VK_BROWSER_HOME AC(172) Browser Start and Home key

音量

VK_VOLUME_MUTE AD Volume Mute key

VK_VOLUME_DOWN AE Volume Down key

VK_VOLUME_UP AF Volume Up key

媒體

VK_MEDIA_NEXT_TRACK B0 Next Track key

VK_MEDIA_PREV_TRACK B1 Previous Track key

VK_MEDIA_STOP B2 Stop Media key

VK_MEDIA_PLAY_PAUSE B3 Play/Pause Media key

語言

VK_LAUNCH_MAIL B4 Start Mail key

VK_LAUNCH_MEDIA_SELECT B5 Select Media key

VK_LAUNCH_APP1 B6 Start Application 1 key

VK_LAUNCH_APP2 B7 Start Application 2 key

標點

VK_OEM_1 186 分號

VK_OEM_PLUS 187 等號

VK_OEM_COMMA 188 逗號

VK_OEM_MINUS 189 減號

VK_OEM_PERIOD 190 句號

VK_OEM_2 191 /

VK_OEM_3 192 ~

Reserved 193..215 保留碼

Unassined 216..218 未指定

VK_OEM_4 219 [

VK_OEM_5 220 \

VK_OEM_6 221 ]

VK_OEM_7 222 引號

VK_OEM_8 223

VK_ATTN HF6(246)

VK_CRSEL HF7(247)

VK_EXSEL HF8(248)

VK_EREOF HF9(249)

VK_PLAY HFA(250)

VK_ZOOM HFB(251)

VK_NONAME HFC(252)

VK_PA1 HFD(253)

  • 上一篇:抖音app防檢測改寫腳本怎麽改
  • 下一篇:\\"0x00432ea4"指令引用的"0x00000000"內存不能為read
  • copyright 2024編程學習大全網