程序退出的可能有很多,程序严重出错,或者不经意的把exit写成Close,那么也可能退出,在你工程里面搜索有没有Close,Application.Terminate,WM_CLOSE之类结束程序运行的语句?如果没有那没办法了,你可以采用一个土办法:写日志!程序里面到处写日志,其中记录当前时间,日志所在函数名等等,慢慢缩小范围,总会找得到的。比如:WriteLog(now, '软件启动');Application.initialize;WriteLog(now, '创建主窗口');Application.CreateForm(TForm1,Form1);。。。。这样当你程序退出之后就能知道最后一个日志写的是什么了,就象黑匣子一样。