private int KeyBoardHookProc(int nCode, int wParam, IntPtr lParam)
{
if (nCode >= 0)
{
KeyBoardHookStruct kbh = (KeyBoardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyBoardHookStruct));
Keys key = (Keys)Enum.Parse(typeof(Keys), kbh.vkCode.ToString());
if (kbh.flags == 0)
{
//这里写按下后做什么
KeyEventArgs e = new KeyEventArgs(key);
this.OnKeyDownEvent(this, e);
}
else if (kbh.flags == 128)
{
//放开后做什么
KeyEventArgs e = new KeyEventArgs(key);
this.OnKeyUpEvent(this, e);
}
return 1;
}
return NativeMethods.CallNextHookEx(hHook, nCode, wParam, lParam);
}