Application.Terminate;
  showmessage('ok');
  WinExec('Ckgl.exe', 0);

解决方案 »

  1.   

    showmessage('ok');是就应用程里面发出的命令,而上一句Application.Terminate;就把此应用程序关闭了,而这个showmessage('ok');发出的对话框也随同关闭了.而下一句WinExec('Ckgl.exe', 0);执行了CKgl.exe,这跟前一个应用程序无关!!!!!~
      

  2.   

    你找些Windows程序设计的书看看,这里问题就很简单了~~~Application.Terminate的作用只是发送消息WM_QUIT,而不是立即终止进程要达到你的要求,前面加个Exit即可
      

  3.   

    showmessage事实上调用的是Application的ShowMessage方法,而这个方法又是包装了API,把Application的Handle传入,因为Application已经中止了,所以无法显示出来。这个就像一个程序最小化的时候,它的Message也不会显示出来,除非你恢复程序。
    如果把Showmessage改为MessageBox(0, '', 'OK', 0, 0, 0)就可以显示出来了,这是因为传入的Handle是0,也就是桌面的句柄。
      

  4.   

    ShowMessage是调用了VCL内建的窗体对象,而不是调用API,反而MessageBox倒是在调用APIApplication的终止是退出消息循环之后,而不是调用Terminate方法发送消息WM_QUIT之后就立即退出
      

  5.   

    好像这两天老说错话,看来以后回帖还是先自己核实一下比较好。
    谢谢 ehom(?!) 指正,是我记错了