参考
http://blog.joycode.com/mvm/archive/2004/10/18/35790.aspx

解决方案 »

  1.   

    C#中键盘钩子的使用 [转帖]
    public class Win32Hook
    {[DllImport("kernel32")]
    public static extern int GetCurrentThreadId();[DllImport( "user32", 
    CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
    public static extern int SetWindowsHookEx(
    HookType idHook,
    HOOKPROC lpfn,
    int hmod,
    int dwThreadId);public enum HookType
    {
    WH_KEYBOARD = 2
    }public delegate int HOOKPROC(int nCode, int wParam, int lParam);public void SetHook()
    {
    // set the keyboard hook
    SetWindowsHookEx(HookType.WH_KEYBOARD,
    new HOOKPROC(this.MyKeyboardProc),
    0,
    GetCurrentThreadId());
    }public int MyKeyboardProc(int nCode, int wParam, int lParam)
    {
    //在这里放置你的处理代码 return 0;
    }
    }
    使用方法
    可以在Form的构造函数里放入
    Win32Hook hook = new Win32Hook();
    hook.SetHook();
      

  2.   

    Using Hooks from C# :
    http://www.thecodeproject.com/csharp/NetWin32Hooks.asp