如题,发些代码,麻烦大家帮我看看是不是哪里有错:
class keyhook 
    {
        public keyhook()
        {
            this.statrhook();
        }
        public event KeyEventHandler KeyUp;
        public win32API.API.HookProc keyHook;
        public int hkeyhook = 0;
        private const int WH_KEYBOARD_LL = 13;
        private  int WH_KEYBOARD = 2;
        public  void statrhook()
        {
            if (this.hkeyhook == 0)
            {
                this.keyHook = new win32API.API.HookProc(this.KeyboardHookProc);
                this.hkeyhook = win32API.API.SetWindowsHookEx(WH_KEYBOARD_LL,
                   this.keyHook,
                    Marshal.GetHINSTANCE(
                    Assembly.GetExecutingAssembly().GetModules()[0]),
                    0);
                MessageBox.Show(this.hkeyhook.ToString(), "钩子");
            }
            //if (this.hkeyhook == 0)
            //{
              //  this.sotphook();
            //}
            //int errorCode = Marshal.GetLastWin32Error();
            //MessageBox.Show(errorCode.ToString(), "钩子");
        }
        public void sotphook()
        {
            bool retKeyboard;
            if (this.hkeyhook != 0)
            {
                retKeyboard =win32API.API.UnhookWindowsHookEx(this.hkeyhook);
                this.hkeyhook = 0;
            } 
        }
        private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)
        {
            if (nCode >= 0 && this.KeyUp != null)
            {
                MessageBox.Show("ok", "");
              win32API.API.KeyboardHookStruct key=(win32API.API.KeyboardHookStruct)Marshal.PtrToStructure(lParam,typeof(win32API.API.KeyboardHookStruct));
              if (KeyUp != null && (wParam ==win32API.API.WM_KEYUP || wParam ==win32API.API.WM_SYSKEYUP))
              {
                  Keys keydata = (Keys)key.vkCode;
                  KeyEventArgs e = new KeyEventArgs(keydata);
                  this.KeyUp(this, e);
              }            }
            return win32API.API.CallNextHookEx(this.hkeyhook,nCode, wParam, lParam);
        }
    }