public void Start()
        {            if (hKeyboardHook == 0)
            {
                KeyboardHookProcedure = new HookProc(KeyboardHookProc);
                hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().ManifestModule), 0);//hKeyboardHook永远是等于0 ,SetWindowsHookEx没成功吗
                if (hKeyboardHook == 0)
                {
                    Stop();
                    throw new Exception("SetWindowsHookEx ist failed.");
                }
            }
        }hKeyboardHook永远是等于0 ,SetWindowsHookEx没成功吗
最后都throw new Exception("SetWindowsHookEx ist failed."); 

解决方案 »

  1.   

    http://social.msdn.microsoft.com/Forums/zh-CN/visualcshartzhchs/thread/6ae06cf3-e7d0-40d4-9812-07aa5de5d916
      

  2.   

    搜索:C# 键盘Hook
      

  3.   

    我查了好多了
    我找到一个行的写的和他一样 当form是不一样的左边是不行 的右边是行的
      

  4.   

    那就找出差异,弄清问题所在啊,呵呵。我对Hook没有深入研究
      

  5.   

    很久以前就有文档指出全局钩子必须基于一个独立的DLL构建,所以直接可能搞不成。钩子的注册必须放在一个DLL中,由你的程序去调它
      

  6.   

    我很早以前写过一个,你搜索下 “rattail 钩子”,然后用反编译器看吧
    没混淆~~~