转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB.net中HOOK的应用(二)         ★★★★

VB.net中HOOK的应用(二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2348 更新时间:2009/4/23 19:00:37
Public Enum HookType

        WH_KEYBOARD = 2

End Enum

 

    Public Sub UnHook()  ‘解Hook

        If hnexthookproc <> 0 Then

            UnhookWindowsHookEx(hnexthookproc)

            hnexthookproc = 0

        End If

    End Sub

    Public Function SetHook()  ‘设置Hook

        If hnexthookproc <> 0 Then

            Exit Function

        End If

        hnexthookproc = SetWindowsHookEx(HookType.WH_KEYBOARD, AddressOf MyKeyboardProc, 0, GetCurrentThreadId())

       我把第三个参数设为0(即NULL),表示的是此Hook的代码在此进程中。第四个参数用了一个API去取安装Hook子程相关联的线程的标识符。(参见前面的API声明)

    End Function

 

    Public Function MyKeyboardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

        MyKeyboardProc = 0

        If nCode < 0 Then

            MyKeyboardProc = CallNextHookEx(hnexthookproc, nCode, wParam, lParam)

            Exit Function

        End If

        If wParam = PM_KEY_SPACE Then 

            MyKeyboardProc = 1

‘写入你自己的代码

frm1.textbox1.text=”HOOK成功!”

        End If

    End Function

    Sub main()

        Application.Run(frm1)

    End Sub

End Module

同时请在:

解决方案管理器-〉windowsapplication1.sln -〉右点鼠标 -〉属性 -〉通用属性->常规->启动对象 -〉改为Module1

4.在Form1中的代码:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Call SetHook()

    End Sub

    ‘vb.net中没有form_unload事件了,而是用closing

    Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing

        Call UnHook()

End Sub

 

最后简单说明一下,为什么我在module1里用了Public frm1 As New Form1()这句话,及启动对象 -〉改为Module1的作法。这是由于vb.net已经是OO的了,如果你是CSDN上vb.net版的常客,你就会很熟悉这个问题,我们已经讨论过N次了。我也回过不知多少贴子来说明这一问题。由于和本文主题与篇幅所限,您要是对这个问题不明白,请先看一下:

http://www.csdn.net/expert/topic/965/965919.xml

获得一些概念。我会在后续的文章中进行更为详细和系统的介绍(其实它也是我最想先写的问题之一)。

 

结束语:关于API的调用,本文只涉及了冰山之一角,关于具体的调用变化,我会根据vb.net版上的具体情况再写相关的文章来说明的。

对了,补充一点,vb.net不再认any类型了,因此,在声明时要具体声明成你想要用的类型即可。

 

上一页  [1] [2] [3]  下一页


[VB.NET程序]VB.net中HOOK的应用(一)  [Delphi程序]Delphi中Hook技术全接触
[Delphi程序]浅谈API HOOK技术(二)  [Delphi程序]浅谈API HOOK技术(一)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台