none
c#中hook的回调函数中返回值问题 RRS feed

  • 问题

  • //这是消息结构体定义

        public struct KBDLLHOOKSTRUCT
        {
            public int vkCode;
            public int scanCode;
            public int flags;
            public int time;
            public IntPtr dwExtraInfo;
        }

    //这是hook的处理函数

    private int MyHookProc(int code, IntPtr wparam, KBDLLHOOKSTRUCT lparam) { if (code >= 0 & (wparam == (IntPtr)WM_KEYDOWN || wparam == (IntPtr)WM_SYSKEYDOWN)) { if (lparam.vkCode == 91||lparam.vkCode==164||lparam.vkCode==9||lparam.vkCode==18) { return 1; } } return 0; }

    调试的时候我遇到了这么一个问题:

    lparam.vkCode的值不是获取到的键盘键值。这是什么情况呢?

     监视窗口 :      lparam.vkCode    2617044    int

    怎么会这么大呢。而且按同一个键每次出现的值都不一样。



    2012年6月30日 13:18

答案

全部回复