想做一个这样的程序,运行后,可以记录用户在电脑上输入的任何信息,也就是键盘输入的信息,比如你在记事中输入了一段文字,那么这个钩子程序会记录下来存入数据表或直接显示出来,都行,找了三天了,唉!

解决方案 »

  1.   

    http://blog.donews.com/zwell/articles/48170.aspx
      

  2.   

    How to set a windows hook in Visual Basic 6(VB6)- 鼠标全局钩子(LowLevelMouseProcedure)- prjBrowser Source Code - 类似QQ窗体停靠效果 - Written by HackerJLYhttp://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
      

  3.   

    这个问题。我倒是解决了。不过写的代码是VB.NET的,可以转成VB6,因为根本就没使用.NET的新特性本来是想实现键盘和鼠标都能获取了,但是分析还没完成,嘿嘿,鼠标部分有点问题,但是键盘倒是能用,用是可以的,但是键码转换要楼主自己写了,我只实现了这个技术的核心代码。。转化还没弄呢。
    代码在
    http://vb-bbs.vicp.net
      

  4.   

    cangwu_lee(橙子) ( ) 信誉:98  2007-3-9 14:06:03  得分: 0   
       
    别开玩笑了,只能记住用户按过哪些键,而用户的输入了什么中文,得不到。  
    这个可以的,画个text1,然后………………
    '窗体代码
    Option ExplicitPrivate Const GWL_WNDPROC As Long = -4Private Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Sub Form_Load()
    preWndProc = SetWindowLong(Text1.hWnd, GWL_WNDPROC, AddressOf WndProc)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Call SetWindowLong(hWnd, GWL_WNDPROC, preWndProc)
    End Sub'模块代码
    Option ExplicitPrivate Const WM_IME_CHAR As Long = &H286
    Private Const WM_IME_COMPOSITION As Long = &H10FPrivate 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 LongPublic preWndProc As LongFunction 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里面随便输入些汉字,在立即窗口可以看见
      

  5.   

    不过全局hook的我不会写…………