我也没有,不过帮你up一下,别怪我无聊,因为我发的贴子经常没人回,很难受的,所以帮你up一下吧。

解决方案 »

  1.   

    如果VC中会做的话,C#中也就会做了
      

  2.   

    你可以把VC++的例子贴出来,大家帮你转为C#
      

  3.   

    全局钩子需要一个dll inject到其他进程里面。
    如果用c#写的托管dll估计是不太可能inject到非托管代码的process里面的。
    HOOK函数可以直接调windows API。
    估计那个hook dll不太可能用托管代码实现。
    如果哪位能实现,偶也认真学习。
      

  4.   

    http://expert.csdn.net/Expert/topic/1376/1376342.xml?temp=.9033472
      

  5.   

    hook是windows的专有技术,估计在.net中不会存在,用vc编个dll,C#调用即可
      

  6.   

    纯用.NET肯定实现不了的!! 只能用标准VC,调用Windows 的API.
    .NET 做的GUI程序运行也巨慢,钩也白钩,越钩越慢....
      

  7.   

    public 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_GETMESSAGE = 3
        }    public delegate int HOOKPROC(int nCode, int wParam, int lParam);    public void SetHook()
        {
            SetWindowsHookEx(HookType.WH_GETMESSAGE,
                new HOOKPROC(this.MyKeyboardProc),
                0,
                GetCurrentThreadId());
        }    public int MyKeyboardProc(int nCode, int wParam, int lParam)
        {
              return 0;
        }
    }
      

  8.   

    的确,我用C#遍的局部钩子运行起来不流畅不方便,而且也遍不了全局钩子。看来目前比较可行的方法就是直接调用VC编写的hook dll。这里有个很标准的键盘钩子示例:http://www.vchelp.net/vchelp/zsrc/keyboardhook.zip 大家可以试试。
    最后,感谢大家的参与。