易截截图软件、单文件、免安装、纯绿色、仅160KB

VB HOOK API

    各位,请问钩子是怎么运行的啊?请先看看我写的代码:
Public hhook
Private Sub Command1_Click()
hhook = SetWindowsHookEx(2, AddressOf testhook, 0, App.ThreadID)
End Sub
以下的是放在模块内的代码:
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
Public Function testhook(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
MsgBox "运行到我了"
End Function
运行以上代码后,我只按了一下键盘,为什么会弹出2个对话框?当关闭第一个的时候 还会弹出一个,那样就一共弹出了3个“运行到我了”这是怎么回事?这个钩子是怎么运行的啊? 还有那个当我把以上代码msgbox "运行到我了"  换成msgbox ncode & wParam & lParam 的时候 为什么出现的是78,"310001",“-------”这种格式的字符呢? 怎么不是我键盘的按键字符呢?那要怎么转化成键盘上的字符?请各位指点一下
由于我刚学习这钩子,所以很多都不知道 ,也百度不到。希望大家帮帮我,原谅我问些基础问题。谢谢
你这只是简单的键盘钩子不算apihook

你要显示键盘的按键的话要转换

你后面的ncode的78就是你按下的键盘的acii码,转换了以后就可以了

78的对应值是N

钩子安装后,不用了,是需要卸载的.

.......还没把HOOK与HOOK API各是什


相关问答:

VB在任意系统C盘吓建立文件夹和文件

Private Sub Command1_Click()
On Error Resume Next
Dim Buffer As String
Buffer = Space(MAX_PATH)
rtn = GetWindowsDirectory(Buffer, Len(Buffer))
WinPath = Left(Buffer, rtn)

Dim Use ......

VB与LINUX下数据库连接的问题

各位大侠,现有一难题求教:假设数据库(mysql或oracle……等数据库)安装在LINUX系统的服务器上,我在客户端(windows系统)用 VB如何建立与数据库的连接,是否可以使用类似ADO或DAO当中的连接语句?请哪位大侠指导 ......

vb执行access sql语句怪问题

SELECT Count(*) from In_fo WHERE Reader_Time between #" + time1 + "# AND #" + time2 + "# and id=" + userid + ";

上面是我写的sql语句 Reader_Time是时间类型 id为数字 ......

InstallShield制作VB安装包

我用InstallShield 10.0制作了一个VB安装包
问题是:
      在别的机子上安装后,在运行程序的时候,提示dll找不到,不能调用。

我在制作安装包的时候,将exe文件、ini文件、图形控件( ......

vb MSFlexGrid1.Row 实时错误'30009'Row数值无效

代码如下:
Private Sub MSFlexGrid1_SelChange()
  If MSFlexGrid1.Rows = 1 Then Exit Sub
  If MSFlexGrid1.Row = 0 Then Exit Sub
 
  grid_row = MSFlexGrid1.Row
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号