键盘信息类: 
        [StructLayout(LayoutKind.Sequential)]
        public struct KeyBoardHookStruct
        {
            public int vkCode;
            public int scanCode;
            public int flags;
            public int time;
            public int dwExtraInfo;
        }
在键盘钩子函数 
private int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lParam)中进行 
KeyBoardHookStruct input = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));
时出现“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”错误。 
奇怪的是,在try块中出现错误时,它不是转到catch块中抛出异常,而是直接跳到Main()函数的Application.Run()那里。 
另,安装钩子是成功的。 
为什么会出现这种情况,怎么解决?请高手解答!