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;
}
------解决方案--------------------同上