Public Function KeyHookProc(ByVal code As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If code <> 0 Then
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)
Exit Function
End If KeyHookProc = 0
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)End Function请问:
1:这段代码应该是处理了keydown和keyup事件,如果只处理一个时间呢?
2:我想改变键值,例如当按下1时我将键值改为2返回窗体,如何实现?
If code <> 0 Then
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)
Exit Function
End If KeyHookProc = 0
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)End Function请问:
1:这段代码应该是处理了keydown和keyup事件,如果只处理一个时间呢?
2:我想改变键值,例如当按下1时我将键值改为2返回窗体,如何实现?
If ncode >= 0 Then
if wParam =KeyDown事件的健值 then
MyKBHook = 0 '表示要处理这个消息
end if
End If
Call CallNextHookEx(hHook, ncode, wParam, lParam) '将消息传给下一个钩子
End Function
自己看看
' 两次事件也就是一次keydown,另一次是keyup
If code <> 0 And lParam >= 0 Then
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)
Exit Function
End If
wParam = vbKeyA ' 改变键值
KeyHookProc = 0
wParam = vbkey
KeyHookProc = CallNextHookEx(kHook, code, wParam, lParam)End Function
If (lParam And &H80000000) = &H80000000 Then
KeyUp事件
Else
KeyDwon事件
End If