日期:2014-05-18  浏览次数:20743 次

求问hook小问题
我用了键盘钩子,在判断是抬起还是按下状态时碰到了小毛病,
我是这样写的,
IntPtr MyHookProc(int code, IntPtr wparam, IntPtr lparam)
{
  if (code < 0)
  return CallNextHookEx(_nextHookPtr, code, wparam, lparam);
  if (wparam.ToInt32() == 98 || wparam.ToInt32() == 66) // b键
  {
  if ((lparam.ToInt32() & 0xC0000000) == 0xC0000000) //抬起
  {
  MessageBox.Show("fff");
  textbox1.text="abc";
  return (IntPtr)1;
  }
  else
  {
  return IntPtr.Zero;
  }
}
问题是关掉messagebox后,还会弹出个messagebox,而且textbox1.text="abc";会执行两次,
为什么会这样啊!我哪里搞错了啊!
3Q!

------解决方案--------------------
if (!ispostback)
{
代码
}
------解决方案--------------------
帮顶
------解决方案--------------------
别人是winform,哪来什么postback

探讨
if (!ispostback)
{
代码
}

------解决方案--------------------
你把 wParam 和 lParam 搞反了吧。