最简单的就是 
override void WndProc(ref Message m)底层的就是hook了

解决方案 »

  1.   

    简单的热键WndProc就足够了类似Ctrl+Alt+Delete比较复杂
      

  2.   

    //有关鼠标和键盘钩子的相关定义
            static int hhookMouse = 0;
            static int hhookKeyBoard = 0;
            public const int WH_MOUSE = 14;
            public const int WH_KEYBOARD = 2 ;
            public const int HC_ACTION = 0;
            public delegate int HookProc(int nCode, IntPtr wParam, IntPtr iParam);
            HookProc MouseHookProcedure, KeyBoardHookProcedure;
            [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
            public static extern int SetWindowsHookEx(int idHook,HookProc lpfn,IntPtr hinstance,int threadid);
            [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
            public static extern int CallNextHookEx(int idHook, int nCode, IntPtr wParam, int lParam);
            [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
            public static extern bool UnhookWindowsHookEx(int idHook);     
    /// <summary>
            /// 钩子处理方法(键盘锁定)
            /// </summary>
            /// <param name="nCode"></param>
            /// <param name="wParam"></param>
            /// <param name="lParam"></param>
            /// <returns></returns>
            private int KeyBoardHookProc(int nCode, IntPtr wParam, IntPtr lParam)
            {
                //如果nCode<0,直接调用CallNextHookEx返回
                if (nCode < 0)
                    //return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam);
                    return 1;
                //函数将消息向下传递,下一个钩子处理将截获这一消息
                //if (nCode != HC_ACTION)
                    //return CallNextHookEx(hhookKeyBoard, nCode, wParam, lParam);
                return 1;
            }
            /// <summary>
            /// 启动键盘锁定
            /// </summary>
            /// <returns></returns>
            private bool EnableKeyBoardCapture()
            {
                KeyBoardHookProcedure = new HookProc(this.KeyBoardHookProc);
                Process currentProcess = Process.GetCurrentProcess();
                //安装全局键盘钩子
                hhookKeyBoard = SetWindowsHookEx(WH_KEYBOARD, KeyBoardHookProcedure, currentProcess.MainModule.BaseAddress, 0);
                if (hhookKeyBoard == 0)
                    return false;
                return true;
            }
            /// <summary>
            /// 解除键盘锁定
            /// </summary>
            /// <returns></returns>
            private bool DisableKeyBoardCapture()
            {
                return UnhookWindowsHookEx(hhookKeyBoard);
            }看看这个有没有用吧
      

  3.   

    1.将窗体的属性KeyPrieview设置为true
    2.在窗体KeyDown事件中加如下代码
    private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
    //屏掉alt+f4
    if (e.KeyCode == Keys.F4&&e.Alt)
    {
    e.Handled = true;
    }}
      

  4.   

    我现在用的是:axWebBrowser 控件  我打开的是PPT 文件 .想屏蔽右键功能,不让人家复制,另存为.  谢谢高手回答一下哟
      

  5.   

    屏蔽右键http://blog.csdn.net/cnhgj/archive/2004/08/08/68813.aspx