添加一个timer1控件 button1
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
i:integer;//模拟按键时间
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
if Timer1.Enabled=true then
begin
i:=0;//清零
Timer1.Enabled:=false;
end
else
begin
i:=0;//清零
Timer1.Enabled:=true;
end;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
i:=i 1;
if i mod 10=0 then
keybd_event($72,0,0,0);//$72是H键的虚拟键值,若要h健则是改为$48
end;procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;//初始化i
Timer1.Enabled:=false;
end;end.

解决方案 »

  1.   

    出了什么问题?
    都没讲清楚...
    加个公用变量 TEnabled : boolean 试试procedure TForm1.Button1Click(Sender: TObject); 
    begin 
    if TEnabled=true then 
    begin 
    i:=0;//清零 
    TEnabled:=false; 
    end 
    else 
    begin 
    i:=0;//清零 
    TEnabled:=true; 
    end; 
    end; procedure TForm1.Timer1Timer(Sender: TObject); 
    begin 
    Timer1.Enabled := false;
    i:=i 1; 
    if i mod 10=0 then 
    keybd_event($72,0,0,0);//$72是H键的虚拟键值,若要h健则是改为$48 
    Timer1.Enabled := Enabled;
    end; 
      

  2.   

    你在执行点button1后,10秒后做的事情没有给i:=0,这样i一直在加1。
      

  3.   

    我本意是想让我的游戏窗口每隔10秒中就会自动按一下H键,第一次按下Button开始计时按键,再次按Button停止按键。Timer组件默认应该是每隔1秒钟就会执行一次Timer1Timer过程吧?
    第1秒i=1,到第10秒i=10了,就会按一下键了,然后一直要等到i=20才会再按次键,以此类推,我是这样理解的,
    当然了看楼上的每隔10秒后让i=0这样会更好哦。不过我编译后运行EXE文件然后激活游戏窗口一点反应都没有。非常谢谢大家帮我找一下问题了哦。
      

  4.   

    汗,看了楼上写的话.你所谓的摸似按键,好像只是针对本FORM的.
    你试一下,要按键的时候,把游戏窗口自动激活到最前页试试.
    如果激活到游戏窗口,你的BUTTON摸似是无效的,如果有效,那么就是H键按下是在FORM中按下的.把你要打开的文件,用FORM打开,然后,登入,看一下放大缩小,噢就是用句柄操作是否有效.
    如有效,那么,用消息传H键值模似,再写一个函数(不要用BUTTON按一下就种方式),运行一下函数.
    我看最好是做成线程,TIMER不是很精确,有时不工作时,差几秒也会出现的.
      

  5.   

    哈哈。我是菜鸟啊。。你说的什么句柄啊,线程啊。。我都不知道是什么东东啊。
    我的用意是按下Button后开始通过Timer循环模拟按键等我不需要时再按下Button停止模拟,
    时间不用那么精确哦。就是误差1分钟我也能接受,大师们的言语也太高深了,小弟看不大懂哦。
    有谁帮我修改下代码我也好仔细琢磨下啊
      

  6.   

    每隔10S,用SendMessage()发送消息,