static void Main(string[] args)
         {
                 KeyHook keyHook = new KeyHook();
                 //安装钩子,继续传递消息
                keyHook.Install(true);
                 //事件的订阅
                keyHook.KeyDownEvent += new KeyHook.KeyDownDelegate(KeyDown);
         }
  Thread hookProc=new Thread(new KeyHookProc().Start);
             hookProc.Start();
             Console.ReadLine();这两个
   第一个一运行程序就退出了。  第二个虽用线程,道理还是一样,线程没有做阻塞动作,一执行完那个Start方法,也是直接退出了。所以钩不到程序。。
 改成这样试试   static void Main(string[] args)
         {
                 KeyHook keyHook = new KeyHook();
                 //安装钩子,继续传递消息
                keyHook.Install(true);
                 //事件的订阅
                keyHook.KeyDownEvent += new KeyHook.KeyDownDelegate(KeyDown);
             while(true)
             {
                  Console.ReadLine();             }
         }