我的部分程序:
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");键盘消息就不能还给应用程序了,直接就结束了。