VB.NET中能HOOK吗?

oilren 2004-05-04 02:39:33
VB.NET中能HOOK吗?
...全文
53 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
koomis 2004-06-26
  • 打赏
  • 举报
回复
在VB.NET中不能用HOOK?不懂不要乱说。我有使用HOOK测试的源代码。所谓跨平台就是骗骗猪头的,不想还真会有人相信,你见过.NET FRAME在其他平台上运行吗?
以下是代码,自己测测看吧:
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As HookType, ByVal lpfn As HOOKPROC, ByVal hmod As Integer, ByVal dwThreadId As Integer) As Integer
'函数说明:本函数是用于启动Hook设置。
'idHook是Hook的类型,即处理的消息类型。
'Lpfn是Hook子程(函数或过程)的地址指针。如果dwThreadId参数为0或是一个由别的进程创建的线程的标识,lpfn必须指向DLL中的Hook子程。除此以外,lpfn可以指向当前进程的一段Hook子程代码(我们利用的就是这个性质)。
'hMod是应用程序实例的句柄,标识包含lpfn所指的子程的DLL。如果dwThreadId 标识当前进程创建的一个线程,而且子程代码位于当前进程,hMod必须为NULL。
'dwThreadId是与安装Hook子程相关联的线程的标识符,如果为0,Hook子程与所有的线程关联。 返回值:函数成功则返回Hook子程的句柄,失败返回NULL。

Public Enum HookType
WH_KEYBOARD = 2
WH_CALLWNDPROC = 4
WH_CALLWNDPROCRET = 12
WH_CBT = 5
WH_DEBUG = 9
WH_FOREGROUNDIDLE = 11
WH_GETMESSAGE = 3
WH_HARDWARE = 8
WH_JOURNALPLAYBACK = 1
WH_JOURNALRECORD = 0
WH_MOUSE = 7
WH_MSGFILTER = (-1)
WH_SHELL = 10
WH_SYSMSGFILTER = 6
End Enum
Vb_Net4Zeng 2004-05-05
  • 打赏
  • 举报
回复
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
'代码
End Sub

可以?
Ninputer 2004-05-04
  • 打赏
  • 举报
回复
不能,因为托管DLL的结构和普通DLL不同,所以不能输出函数。
用VB6做已经需要很高技巧了,用.NET从理论上不能实现系统Hook
yufenfeila 2004-05-04
  • 打赏
  • 举报
回复
能。CSDN文章区去看看吧
douhapy 2004-05-04
  • 打赏
  • 举报
回复
能用,不过已没有必要了,终究VB.Net是面向对象的。hook中的很多功能在VB.Net中同过方法或事件来实现了。
oilren 2004-05-04
  • 打赏
  • 举报
回复
没人回答?

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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