王国荣 VB与Windows Api代码==========Form1====================
Option ExplicitPrivate Sub Form_Load()
On Error Resume Next SetKeyboardHook Me.hWnd, WM_USER If Err.Number <> 0 Then
MsgBox "请先将 KeybHook.dll 复制到 Windows 的所在路径!", vbCritical
End
End If
On Error GoTo 0
prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
ReleaseKeyboardHook
SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Sub
==============================================Module1===================Option ExplicitPublic Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongDeclare Function SetKeyboardHook Lib "KeybHook" (ByVal hwndPost As Long, ByVal Msg As Long) As Long
Declare Function ReleaseKeyboardHook Lib "KeybHook" () As LongPublic prevWndProc As LongFunction WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER Then
Form1.List1.AddItem "wParam=" & wParam & ", lParam=" & Hex(lParam)
Form1.List1.ListIndex = Form1.List1.NewIndex
End If
Select Case wParam
Case 91
Case 92
Case Else
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Select
End Function
===================================用到一个Dll留下你的电邮。我发给你
要是相要整个光盘的内容也可以。Rar压缩2.53M
Option ExplicitPrivate Sub Form_Load()
On Error Resume Next SetKeyboardHook Me.hWnd, WM_USER If Err.Number <> 0 Then
MsgBox "请先将 KeybHook.dll 复制到 Windows 的所在路径!", vbCritical
End
End If
On Error GoTo 0
prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
ReleaseKeyboardHook
SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Sub
==============================================Module1===================Option ExplicitPublic Const GWL_WNDPROC = (-4)
Public Const WM_USER = &H400Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongDeclare Function SetKeyboardHook Lib "KeybHook" (ByVal hwndPost As Long, ByVal Msg As Long) As Long
Declare Function ReleaseKeyboardHook Lib "KeybHook" () As LongPublic prevWndProc As LongFunction WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER Then
Form1.List1.AddItem "wParam=" & wParam & ", lParam=" & Hex(lParam)
Form1.List1.ListIndex = Form1.List1.NewIndex
End If
Select Case wParam
Case 91
Case 92
Case Else
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Select
End Function
===================================用到一个Dll留下你的电邮。我发给你
要是相要整个光盘的内容也可以。Rar压缩2.53M
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货