vb 锁定键盘

2025-03-03 04:21:25
推荐回答(2个)
回答1:

拦截键盘的话,要用hook的,呵呵,分数低...但是很简单

'使用底层KeyboardHook拦截按键消息

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Dim blnHook As Boolean

Dim p As PKBDLLHOOKSTRUCT

If nCode = HC_ACTION Then

Select Case wParam

Case WM_KEYDOWN, WM_SYSKEYDOWN, WM_KEYUP, WM_SYSKEYUP

Call CopyMemory(p, ByVal lParam, Len(p))

If p.vkCode = VK_LWIN Or p.vkCode = VK_RWIN Then '按下了左/右Win键

blnHook = True

End If

Case Else

'do nothing

End Select

End If

If blnHook Then

LowLevelKeyboardProc = 1

Else

Call CallNextHookEx(WH_KEYBOARD_LL, nCode, wParam, lParam)

End If

End Function

Public Sub HooK()

lngHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)

End Sub

Public Sub UnHooK()

Call UnhookWindowsHookEx(lngHook)

End Sub

回答2:

分数很低