setcapture可以捕获鼠标,请问有没有捕获键盘的函数?

解决方案 »

  1.   

    HOOK捕获键盘'以下在BAS
    Public Function Hook&(ByVal hWnd1&)
       
        OldWndProc = SetWindowLong(hWnd1, GWL_WNDPROC, AddressOf NewWndProc)
    Hook = OldWndProc
    End FunctionPublic Sub UnHook(ByVal hWnd1&)
       
        SetWindowLong hWnd1, GWL_WNDPROC, OldWndProc     
    End SubPublic Function NewWndProc&(ByVal hWnd1&, ByVal uMsg&, ByVal wParam&, ByVal lParam&) 
    Select Case uMsg  Case WM_MOUSEWHEEL '捕获鼠标中间滚动事件
      Case WM_KEYDOWN    '捕获按键事件
      Debug.Print "AASDERFGH"
      Case WM_NCACTIVATE  '捕获焦点事件
       
    End Select
       
    NewWndProc = CallWindowProc(OldWndProc, hWnd1, uMsg, wParam, lParam)End Function常量及API函数自己找一下。'以下在窗体
    Private Sub Form_Load()
    Hook Me.hwnd
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    UnHook Me.hwnd
    End Sub
      

  2.   

    你使用的是子类,你捕获的只是某个控件(HWND)的子类,如果我要捕获某个窗口(包括其子控件)的全部键盘信息,怎么做(注只是捕获某个窗口中的全部子控件,不是捕获这个程序的全部窗口)。