比如说一个游戏  
连续按两下W   就是快速向前跑
连续按两下A   就是快速向左跑这种连续按键该怎么写呢  希望好心人给个写法感激

解决方案 »

  1.   

    for i:=1 to 2 do
    begin
      SendMessage();
    end;SendMessage函数可以实现你想的,需要什么功能自己定
      

  2.   

    SendMessage(hwnd,WM_KEYDOWN,0x57,0); 
    SendMessage(hwnd,WM_KEYUP,0x57,0); WM_KEYDOWN是键盘按下 
    WM_KEYUP  是键盘弹起0x57 是键盘虚拟键码 w
      

  3.   

    键盘HOOK  键盘钩子 去百度查一下吧
      

  4.   

    这个方法不错,不过我用的是用定时器,在发现有按键按下时就会启动一个只有100ms的计时器,计时器里面的内容就是把自己关闭,然后再第二次按下的时候查询定时器的状态,如果是true说明是连续按下,这个时候就可以处理了,如果是false说明并不是连续按键。
    当然,这个方法也是需要保存上次按键的键值的
      

  5.   


    TKeyItem = record
      key: TKeyValue; //自己重定义
      pressTime: TDatetime;
    end;TKeyQuery = class
    private
      items: array of TKeyItem;
    public
      procedure clearKey;
      function getKeyCount: Integer;
      
      //...其他功能函数
      function addKey(key: TKeyItem): Integer; //根据返回值判断是否连续按下, 实现代码在这个函数end;//具体实现略...
      

  6.   

    TKeyQueue ... 我拼错了 不是Query 习惯了...