none
UnhookWindowsHookEx 失败! RRS feed

  • 问题

  • 各位好!

    我在Win7+VS2010环境下编写的一个程序,需要感应鼠标和键盘活动,之前用如下代码调用SetWindowsHookEx一直失败,

    hMouseHook = SetWindowsHookEx( WH_MOUSE_LL, MouseHookProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);

    之后改用简化了的代码,成功了,具体如下:

    hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProcedure, IntPtr.Zero, 0);

    但问题是UnhookWindowsHookEx发生异常。怪异的是,如果在程序启动时调用SetWindowsHookEx之后紧跟着UnhookWindowsHookEx,会返回true,表示unhook成功,但程序启动之后再关闭时,调用UnhookWindowsHookEx却返回false,但我检查了句柄数值正确,而且系统钩子也没有被释放过,且始终有效,谁知道问题出在什么地方啊?谢谢啦!


    I Believe, I Can
    2011年8月20日 6:34

全部回复

  • 晕,

    hMouseHook = SetWindowsHookEx( WH_MOUSE_LL, MouseHookProcedure, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);

    这段代码在XP上面是成功的,卸载系统钩子也是成功的,但在Win7下面就是不行!哪位大侠给点建议吧!


    I Believe, I Can
    2011年8月21日 0:35
  • 你好,

    请问出错信息是什么,另外能否多提供一些相关的code


    Paul Zhou [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年8月23日 9:11