为什么小键盘0到10不能正确显示?
标准计算机键盘(101/102),我用低级键盘钩子获取右边小键盘的0到10的值为什么不能正确显示在窗口?而实际显示的是'abcdefghi
左边键盘0~10十六进制是:&H30 To &H39
A~Z十六进制是: &H41 To &H5A
小键盘十六进制是如下代码中所示(&H60 To &H69),不知道有没有错?实际结果显示在窗体里面form.txtSS.Text的不是0-10!而是'abcdefghi!
Public Function LowLevelKeyboardProc(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim p As PKBDLLHOOKSTRUCT
Dim strKey As String
If ncode = HC_ACTION Then
Select Case wParam
Case WM_KEYDOWN
CopyMemory p, ByVal lParam, Len(p)
If p.VKCode > 0 And p.VKCode < &H92 Then
Select Case p.VKCode
Case VK_RETURN
'strKey = strKey & "{Return}"
Case &H60 To &H69, &H30 To &H39, &H41 To &H5A 'oct 八进制 dec 十进制 Hex 十六进制
strKey = strKey & Chr(p.VKCode)
Case Else
'do nothing
End Select
form.txtSS.Text = form.txtSS.Text & strKey
End If
Case Else
'do nothing
End Select
End If
CallNextHookEx WH_KEYBOARD_LL, ncode, wParam, lParam
If p.VKCode = VK_RETURN Then
strSN = Trim(form.txtSS)
form.txtSS.Text = ""
End If
End Function