鍵盤的掃描碼虛擬碼概念 常見Windows鍵盤按鍵虛擬碼

來源:互聯網
上載者:User

'當使用者按下某個鍵時,
' 1.鍵盤會檢測到這個動作,並通過鍵盤控制器把掃描碼(scan code)傳送到電腦;
'       鍵盤掃描碼跟具體的硬體有關的,不同廠商對同一個鍵的掃描碼有可能不同。
' 2.電腦接收到掃描碼後,將其交給鍵盤驅動程式;
' 3.鍵盤驅動程式把這個掃描碼轉換為鍵盤虛擬碼;
'       虛擬碼與具體硬體無關,不同廠商的鍵盤,同一個鍵的虛擬碼總是相同的。
' 3.然後,鍵盤驅動程式把該鍵盤操作的掃描碼和虛擬碼以及其它資訊傳遞給作業系統;
' 4.作業系統將獲得的資訊封裝在一個鍵盤訊息中,並把該鍵盤訊息插入到訊息列隊。
' 5.通過Windows的訊息系統,該鍵盤訊息被送到某個視窗中;
' 6.視窗所在的應用程式接收到訊息後,可以瞭解到有關鍵盤操作的資訊,然後決定作出一定的響應

'鍵盤訊息:WM_KEYDOWN
'               nVirtKey = (int) wParam;    // 虛擬碼
'               lKeyData = lParam;          // 鍵盤操作的相關資訊

'鍵盤訊息WM_KEYDOWN的第二個參數lParam比較複雜
'   其作用是指定重複次數、掃描碼、擴充鍵標記、上下文環境碼、前鍵狀態標記、轉換狀態標記等
'   lParam: 總長4位元組,32位
'0–15位:用於指定當前訊息的重複次數。當使用者按下某個鍵持續一段時間的話,
'       該值是自動計數的按下某鍵的次數;若按鍵時間很長,則會發出多個訊息,
'       且重複次數不會累計
'16–23:指定掃描碼
'24:指定是否該鍵是一個擴充鍵(如alt、ctrl),若值為1表示是擴充鍵,否則其值為0
'25–28:保留
'29:指定上下文環境碼。對於WM_KEYDOWN、WM_KEYUP訊息,其值總為0,
'        對WM_CHAR訊息,如果同時alt鍵被按下,則值為1,否則值為0.
'30:指定前鍵狀態。如果訊息發送前該鍵是按下狀態,其值為1,否則為0
'31:指定轉換狀態,對於WM_KEYDOWN,其值總為0;

'       對於WM_CHAR,如果該鍵被釋放,則其值為1,否則為0.

常見Windows鍵盤按鍵虛擬碼

鍵盤常用ASCII碼
ESC鍵 VK_ESCAPE (27)
斷行符號鍵: VK_RETURN (13)
TAB鍵: VK_TAB (9)
Caps Lock鍵: VK_CAPITAL (20)
Shift鍵: VK_SHIFT ()
Ctrl鍵: VK_CONTROL (17)
Alt鍵: VK_MENU (18)
空格鍵: VK_SPACE (/32)
退格鍵: VK_BACK (8)
左徽標鍵: VK_LWIN (91)
右徽標鍵: VK_LWIN (92)
滑鼠右鍵快速鍵:VK_APPS (93)
Insert鍵: VK_INSERT (45)
Home鍵: VK_HOME (36)
Page Up: VK_PRIOR (33)
PageDown: VK_NEXT (34)
End鍵: VK_END (35)
Delete鍵: VK_DELETE (46)
方向鍵(←): VK_LEFT (37)
方向鍵(↑): VK_UP (38)
方向鍵(→): VK_RIGHT (39)
方向鍵(↓): VK_DOWN (40)
F1鍵: VK_F1 (112)
F2鍵: VK_F2 (113)
F3鍵: VK_F3 (114)
F4鍵: VK_F4 (115)
F5鍵: VK_F5 (116)
F6鍵: VK_F6 (117)
F7鍵: VK_F7 (118)
F8鍵: VK_F8 (119)
F9鍵: VK_F9 (120)
F10鍵: VK_F10 (121)
F11鍵: VK_F11 (122)
F12鍵: VK_F12 (123)
Num Lock鍵: VK_NUMLOCK (144)
小鍵盤0: VK_NUMPAD0 (96)
小鍵盤1: VK_NUMPAD0 (97)
小鍵盤2: VK_NUMPAD0 (98)
小鍵盤3: VK_NUMPAD0 (99)
小鍵盤4: VK_NUMPAD0 (100)
小鍵盤5: VK_NUMPAD0 (101)
小鍵盤6: VK_NUMPAD0 (102)
小鍵盤7: VK_NUMPAD0 (103)
小鍵盤8: VK_NUMPAD0 (104)
小鍵盤9: VK_NUMPAD0 (105)
小鍵盤.: VK_DECIMAL (110)
小鍵盤*: VK_MULTIPLY (106)
小鍵盤+: VK_MULTIPLY (107)
小鍵盤-: VK_SUBTRACT (109)
小鍵盤/: VK_DIVIDE (111)
Pause Break鍵: VK_PAUSE (19)
Scroll Lock鍵: VK_SCROLL (145)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.