拦截所有的事件(Mouse,Keyboard)

tg123 2000-08-21 11:52:00
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
deadwind 2001-08-02
  • 打赏
  • 举报
回复
关注
kyuwong 2001-08-02
  • 打赏
  • 举报
回复
shines77 2000-08-23
  • 打赏
  • 举报
回复
'启动挂钩
'设置新的窗口函数和备份老的窗口函数
wlOldProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf OwnWinProc)

'卸载程序时:
SetWindowLong hWnd, GWL_WNDPROC, wlOldProc

'在标准模块Module里添加窗口函数:
Public Function OwnWinProc(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Select Case wMsg
Case
........
'检测Windows事件

End Select
OwnWinProc = CallWindowProc(wlOldProc, hWnd, wMsg, wParam, lParam)
End Function
fs_windy 2000-08-22
  • 打赏
  • 举报
回复
方法一
Public Const GWL_WNDPROC = (-4)
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

方法二
Public Const WH_CALLWNDPROC = 4
Public Const WH_KEYBOARD = 2
Public Const WH_MOUSE = 7
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

tg123 2000-08-22
  • 打赏
  • 举报
回复
具体
fs_windy 2000-08-22
  • 打赏
  • 举报
回复
API函数中SetWindowLong建立与Winproc的挂钩

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧