现在遇到的一个比较大的问题是:1,注册热键RegisterHotKey(Handle,48,0,48); 2,热键响应procedure WMHotKey(var Msg: Tmessage)这个程序里有这样一些语句:if Msg.LParamHi=48 then
begin
  keybd_event(220,0,0,0);
  keybd_event(220,0,KEYEVENTF_KEYUP,0);
end;这样的话就会死掉,就是永远地自调用,怎么办?

解决方案 »

  1.   

    上面写错了,if Msg.LParamHi=48 then
    begin
      keybd_event(48,0,0,0);
      keybd_event(48,0,KEYEVENTF_KEYUP,0);
    end;
      

  2.   

    明摆着是个死循环,一旦触发就无限地继续发送按键你想实现什么目的?貌似是你的思路错了。如果必须这样,那你要设置一个缓冲极限,比如加一个全局变量I,每接收一次热键消息就Inc(I),并判断I值是否大于某数值,一旦大于就不再发送按键。
      

  3.   

    if Msg.LParamHi=48 then
    begin
      keybd_event(220,0,0,0);
      keybd_event(220,0,KEYEVENTF_KEYUP,0);
      Msg.result :=1;
    end;
    这样看看,不行的话就只能用全局在前面判断下.
      

  4.   

    Msg.result:=1 这个东西本来写了