在一个循环中,希望实现,showmessage(),然后系统自动用鼠标去点击它,即不需要认为参与,即可向下执行

解决方案 »

  1.   

    自己做一个模态对话框,然后用一个Timer做倒计时,倒计时完毕自动关闭。
      

  2.   

    比如
      for i:=0 to 9 do
      begin
        showmessage(inttostr(i));
        //代码   怎么实现把这个对话框自动关掉
        end;
    在这个过程中,不需要人为的去点击确定按钮,就能使程序向下运行
      

  3.   

    同楼上的,自己做个窗体,弹出窗口的时候,不用,showmessage,
    把自己的窗口show出来(Fform1.show)
    fform1.show;
    //Timer1.enable:=true;
    //用Timer控间或者其他方法延时1段时间
    Fform1.hide;
    //继续其他代码
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
       showmessage('123');
    end;procedure TForm1.Timer1Timer(Sender: TObject);
    var  HWindow, HButton: THandle; //句柄变量
    Begin
       HWindow := 0;
       While true Do
          Begin
           HWindow := FindWindowEx(0, HWindow, 'TMessageForm', 'Project2');//Showmessage的窗体
           if hwindow=0 then
           begin
           exit;
           end
           else
           Begin
           HButton := FindWindowEx(HWindow, 0, 'TButton','OK');//找到按钮
          SendMessage(HButton, BM_CLICK, 0, 0);//单击按纽
         break;
        End;
      end;
    End;//Winxp+D7测试通过~~`
      

  5.   

    可以使用键盘模拟的api,keybdevent()模仿按下回车键
      

  6.   

    jackie168(三箭齐发) is good!!!!!!
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    ShowMessage('ok');end;procedure TForm1.Timer1Timer(Sender: TObject);
    begin
    keybd_event(13,0,KEYEVENTF_EXTENDEDKEY or 0,0);
    keybd_event(13,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
    end;
      

  8.   

    更简单的,自己做一个message窗口,然后调用close方法
      

  9.   

    调用timer 
     用timer用实现自动关闭
      

  10.   

    jackie168(三箭齐发)方法比较好,不管ShowMessage()的程序是不是自己写的都使用,有人写过这样的
    例子,某软件的试用版执行一个很有用的批处理,但未注册要求的只能每执行一个步骤,就得敲一次Ctrl+Enter键,作者被搞得不厌其烦,就写了个发送虚拟事件的程序,搞定.不过如果ShowMessage()的程序是自己写的,要发出关闭消息的与它又在同一程序内,做个定时默认关闭的还是比较直接,FindWindowEx实际要枚举许多窗口的。