winform中如何禁止使用按键精灵之类的工具?
禁止一切非从键盘、鼠标发出的小气,该如何处理? 
 使用HOOK能否做到?有知道的人请给代码,谢谢 
 解决了分数立刻送上
------解决方案--------------------  using System.Runtime.InteropServices;   
 class Win32Hook 
     { 
         [DllImport( "kernel32 ")] 
         public static extern int GetCurrentThreadId();   
         [DllImport( "user32 ", 
         CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] 
         public static extern int SetWindowsHookEx( 
         HookType idHook, 
         HOOKPROC lpfn, 
         int hmod, 
         int dwThreadId);   
         public enum HookType 
         { 
             WH_KEYBOARD = 2, 
             WH_MOUSE = 7 
         }   
         public delegate int HOOKPROC(int nCode, int wParam, int lParam);   
         public void SetHook() 
         { 
             //设置鼠标钩子   
             SetWindowsHookEx(HookType.WH_MOUSE,  
             new HOOKPROC(this.MouseProc), 
             0, 
             GetCurrentThreadId()); 
             //设置键盘钩子 
             SetWindowsHookEx(HookType.WH_MOUSE, 
             new HOOKPROC(this.KeyboardProc), 
             0, 
             GetCurrentThreadId()); 
         }   
         public int KeyboardProc(int nCode, int wParam, int lParam) 
         { 
             //在这里放置你的处理代码 
             //不处理就到达了禁止的作用 
             return 1; 
         }    
          public int MouseProc(int nCode, int wParam, int lParam) 
         { 
             //在这里放置你的处理代码  
             //不处理就到达了禁止的作用 
             return 1; 
         }    
     }     
  可以在Form的构造函数里放入    
   Win32Hook   hook   =   new   Win32Hook();    
   hook.SetHook();
------解决方案--------------------楼上的代码并不能实现楼主的要求。按键精灵是摸拟键盘鼠标的,摸拟的方式有纯发送消息、API操作键盘鼠标以及硬件摸拟。要禁用,你可以试试在WinForm中直接从DirectInput中读取键鼠操作,不过这样对按键精灵的“硬件摸拟模式”不知道有没有用,我没研究过。   
 另外,你可以用FindWindow来查找按键精灵的窗口,发现窗口就不Kill掉或者你自己的程序就不运行。不过这种方法按键精灵也有招对付,它的注册版好像有个什么盾功能,可以防止其它程序检测。   
 总而言之,很难做到完全禁止的。
------解决方案--------------------楼上说的对,要看内存,如有按键精灵存在就杀了。