首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 键盘钩子的有关问题

2014-01-05 
c# 键盘钩子的问题 int KbHookProc(int nCode, IntPtr wParam, IntPtr lParam){if (nCode 0 && wParam

c# 键盘钩子的问题
 int KbHookProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0 && wParam == (IntPtr)0x100)
            {
                int vkCode = Marshal.ReadInt32(lParam);
                if (vkCode == 160) //Shift键值
                {
                          press((byte)Keys.NumPad7); 
                          return 1; 
                  }
            }

            return CallNextHookEx(hHook, nCode, wParam, lParam);
        }

       public void press(byte vk)
        {
            keybd_event(vk, 0, 0, 0);
            keybd_event(vk, 0, 0x0002, 0);
        }
为什么我按一下Shift键会打出20多个7来?而换成改别的普通的键都没问题
//不是你自己写的么,当按下的建值为
 if (vkCode == 160) //Shift键值
{
     press((byte)Keys.NumPad7); //按7
     return 1; 
}
[解决办法]


//不是你自己写的么,当按下的建值为
 if (vkCode == 160) //Shift键值
{
     press((byte)Keys.NumPad7); //按7
     return 1; 
}
同上

热点排行