您的位置:程序门 -> vb ->



那位高人给个钩子程序源码,要求能执行


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


那位高人给个钩子程序源码,要求能执行
发表于:2007-03-09 13:24:51 楼主
想做一个这样的程序,运行后,可以记录用户在电脑上输入的任何信息,也就是键盘输入的信息,比如你在记事中输入了一段文字,那么这个钩子程序会记录下来存入数据表或直接显示出来,都行,找了三天了,唉!
发表于:2007-03-09 14:06:021楼 得分:0
别开玩笑了,只能记住用户按过哪些键,而用户的输入了什么中文,得不到。
发表于:2007-03-14 12:02:302楼 得分:0
http://blog.donews.com/zwell/articles/48170.aspx
发表于:2007-03-26 16:20:023楼 得分:0
发表于:2007-03-31 23:28:344楼 得分:0
在vb6中很难弄
发表于:2007-08-05 17:05:505楼 得分:0
how   to   set   a   windows   hook   in   visual   basic   6(vb6)-   鼠标全局钩子(lowlevelmouseprocedure)-   prjbrowser   source   code   -   类似qq窗体停靠效果   -   written   by   hackerjly

http://hackerjly.spaces.live.com/blog/cns!ce41e30095119731!1871.entry

我自己写的,用wh_mouse_ll,因为:只有:wh_mouse_ll   和   wh_keyboard_ll   才不用把hookproce(setwindowshookex   函数的第二个lpfn参数所指向的过程)写入到:标准dll里面,就可以实现全局钩子,其他的必须把hookproc写入到:标准dll里面,也就是说:先用vc写一个标准dll(里面要含有hookproc),然后再用其他语言(vb等)调用!

此段内容的msdn地址:http://support.microsoft.com/default.aspx?scid=kb;en-us;318804
发表于:2007-08-08 23:12:586楼 得分:0
楼上的...没仔细看楼主的问题吧...?????
发表于:2007-08-21 12:21:507楼 得分:0
这个问题。。。。我倒是解决了。不过写的代码是vb.net的,可以转成vb6,因为根本就没使用.net的新特性。。。本来是想实现键盘和鼠标都能获取了,但是分析还没完成,嘿嘿,鼠标部分有点问题,但是键盘倒是能用,用是可以的,但是键码转换要楼主自己写了,我只实现了这个技术的核心代码。。。。。转化还没弄呢。
代码在
http://vb-bbs.vicp.net

发表于:2007-08-21 14:24:118楼 得分:0
cangwu_lee(橙子)   (   )   信誉:98     2007-3-9   14:06:03     得分:   0      
     
别开玩笑了,只能记住用户按过哪些键,而用户的输入了什么中文,得不到。

   
这个可以的,画个text1,然后………………
'窗体代码
option   explicit

private   const   gwl_wndproc   as   long   =   -4

private   declare   function   setwindowlong   lib   "user32.dll "   alias   "setwindowlonga "   (byval   hwnd   as   long,   byval   nindex   as   long,   byval   dwnewlong   as   long)   as   long

private   sub   form_load()
prewndproc   =   setwindowlong(text1.hwnd,   gwl_wndproc,   addressof   wndproc)
end   sub

private   sub   form_unload(cancel   as   integer)
call   setwindowlong(hwnd,   gwl_wndproc,   prewndproc)
end   sub

'模块代码
option   explicit

private   const   wm_ime_char   as   long   =   &h286
private   const   wm_ime_composition   as   long   =   &h10f

private   declare   function   callwindowproc   lib   "user32.dll "   alias   "callwindowproca "   (byval   lpprevwndfunc   as   long,   byval   hwnd   as   long,   byval   msg   as   long,   byval   wparam   as   long,   byval   lparam   as   long)   as   long

public   prewndproc   as   long

function   wndproc(byval   hwnd   as   long,   byval   msg   as   long,   byval   wparam   as   long,   byval   lparam   as   long)   as   long
select   case   msg
        case   wm_ime_composition
                if   lparam   =   8127   then
                        debug.print   "输入中文了 ",
                end   if
        case   wm_ime_char
                debug.print   chr$(wparam),
end   select
wndproc   =   callwindowproc(prewndproc,   hwnd,   msg,   wparam,   lparam)
end   function

'你在text1里面随便输入些汉字,在立即窗口可以看见
发表于:2007-08-21 14:27:049楼 得分:0
不过全局hook的我不会写…………
发表于:2007-08-22 12:49:2510楼 得分:0
全局很简单,我就实现了!
发表于:2007-08-23 20:35:2711楼 得分:0
楼上的朋友能帖出代码吗?一起学习…………
发表于:2007-08-25 12:27:4012楼 得分:0
mark


快速检索

最新资讯
热门点击