读书人

c# 键盘钩子的有关问题

发布时间: 2014-01-05 18:22:56 作者: rapoo

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;
}
同上

读书人网 >C#

热点推荐