怎么把VB的DLL注入到其它进程中,还监视线程。设置勾子

zhuangbx220 2003-06-13 03:59:41
Option Explicit

'Model模块

Public Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

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

Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

Global hHook&

Public Function HookProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
HookProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
End Function

'*************************************************************
Option Explicit

'FORM模块
Public Enum HookType
WH_KEYBOARD = 2
WH_MOUSE = 7
End Enum

''''''''''''''''''钩子'''''''''''''''''''''''''''''''''''''''''''''''''
Function HookOn(ByVal lpType As HookType, ByVal hThread As Long) As Long
If hHook <> 0 Then HookOff
hHook = SetWindowsHookEx(ByVal lpType, AddressOf HookProc, App.hInstance, hThread) '为另一进程的线程ID
HookOn = hHook
End Function

Sub HookOff()
UnhookWindowsHookEx hHook
hHook = 0
End Sub

'我设置的是键盘勾子,能设置成功
'但是,在另一进程的线程窗体中点击键盘时,应该进程出错了。

'VB不能跨进程设置勾子吗?

'在VB6 + WIN 2000环境中使用


'怎么把VB的DLL注入到其它进程中,还监视线程。设置勾子
...全文
59 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuangbx220 2003-06-26
  • 打赏
  • 举报
回复
倒~!VB真的做不了

我用Delphi已经做出来了。

结贴
boywang 2003-06-13
  • 打赏
  • 举报
回复
vb做不了全局的钩子的。
bu_wen 2003-06-13
  • 打赏
  • 举报
回复
只能是 真正的dll 并且是个带有全局钩子的dll
zhuangbx220 2003-06-13
  • 打赏
  • 举报
回复
Up
rappercn 2003-06-13
  • 打赏
  • 举报
回复
VB做不到,必须用真正的DLL,而不是ACTIVEX DLL

1,486

社区成员

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

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