我是新手,最近写程序中要用这一段代码,但总不能如愿,执行时总是先执行后面两句,再执行第一句,不知应该如何设计才对,请高手指教,如何解决?
   begin
   winexec('C:\??\??.???',1);
   copyfile('c:\???\???.??? c:\????\???.???',true);
   copyfile('c:\???\????.??? c:\????\????.???',true);
end;例子我是随便举的,无意将第一句和第二句写成同一个样子,特改正

解决方案 »

  1.   

    我再将意思说一下,就是在一个响应事件中,要执行三条指令,第一条,用WINEXEC调用外部程序,第二句和第三句用拷贝文件函数完成两个文件的复制,但程序运行下来总是先拷贝文件,后执行外部程序,也就是说不等外部程序运行结束,就做复制工作了。怎样能让它将外部程序运行结束,再执行后两条指令,是我要解决的问题。
      

  2.   

    winexec('C:\??\??.???',1);将会立即返回但是执行的程序跟你的程序没有关系
    你的程序跟着就往下走了,如果winexec执行的程序慢就回产生后面的先执行的现象
      

  3.   

    可以用CreateProcess()启动你要执行的程序,然后用WaitSingleObject()等待它执行结束,在继续执行下面的语句就行了。
      

  4.   

    WinExec只是启动外部的应用程序,它不等被调用的程序的返回结果。比如说,你在WinExec中打开记事本,它是不管你的记事本程序的状态的,它只是启动而已。