none
关于HOOK的问题 两次连续的执行 RRS feed

  • 问题

  • 我的部分程序:
      IntPtr MyHookProc(int code, IntPtr wparam, IntPtr lparam)  
      {
      if (code < 0)return CallNextHookEx(_nexthookptr, code, wparam, lparam); //返回,让后面的程序处理该消息  
      if(lparam>0) //只处理键盘按下的情况
      {
      i++;
      this.Textbox1.Text=i.ToString();
      }   
      return (IntPtr)0;//返回,让后面的程序处理该消息
      }
    已经处理了键按下和弹起的情况了呀,可是为啥每次按键还是会有两次连续调用呢,经观察发现:两次的lparam值都是同一个正数,唯一的不同时第一次code为3,第二次code为0。自己已经看了好久了,实在没办法了,请大家帮帮忙吧!


    问题补充:发现一个奇怪的现象:只要我在处理子程中用了MessageBox.Show("sd");键盘消息就不能还给应用程序了,直接就结束了。
    • 已编辑 Jing1988 2010年12月16日 5:05 补充
    2010年12月16日 3:10