为什么按方向键显示4个

xzp1030 xzp1030 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
做一个后台运行的程序,把在键盘上按下的所有键都记录下来。按一些字母键还可以只显示一个,可按方向键时,显示4个(我是把键盘上按下的所有键记录在richtext中内)uparrowuparrowuparrowuparrow,可我只按了一下键盘啊。
部分代码如下:

Public Function EnableKBDHook()
If hnexthookproc <> 0 Then
Exit Function
End If
hnexthookproc = SetWindowsHookEx(WH_KEYBOARD, AddressOf MyKBHFunc, App.hInstance, 0)
If hnexthookproc <> 0 Then
EnableKBDHook = hnexthookproc
End If
End Function

Public Function MyKBHFunc(ByVal iCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MyKBHFunc = 0 '信息要处理
If iCode < 0 Then
MyKBHFunc = CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
Exit Function
End If
If Not ConvChar(wParam) Then
Call UnHookKBD
frmwin.Show
Exit Function
End If
Call CallNextHookEx(hnexthookproc, iCode, wParam, lParam)
End Function

Private Function ConvChar(ByVal vData As Long) As Boolean
ConvChar = True
Dim KeyResult As Integer
Select Case vData
Case 107 '小键盘+
frmwin.RText.Text = frmwin.RText.Text + "+"
Case 109 '小键盘—
frmwin.RText.Text = frmwin.RText.Text & "-"
Case 106 '小键盘*
frmwin.RText.Text = frmwin.RText.Text & "*"
Case 111 '小键盘/
frmwin.RText.Text = frmwin.RText.Text & "/"
Case 37
frmwin.RText.Text = frmwin.RText.Text & "leftarrow"
Case 38
frmwin.RText.Text = frmwin.RText.Text & "uparrow"
Case 39
frmwin.RText.Text = frmwin.RText.Text & "rightarrow"
Case 40
frmwin.RText.Text = frmwin.RText.Text & "downarrow"
end select
end function
高手帮帮忙,解决后马上结贴。
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
xzp1030
VB基础类 7,788 成员 197,583 内容