在你的程序的主FORM 的 FORMCREATE 事件里面添加如下的代码: procedure 主FORM.FormCreate(Sender: TObject); var errno:integer; hmutex:hwnd; begin hmutex:=createmutex(nil,false,pchar(application.Title)); errno:=getlasterror; if errno=error_already_exists then begin ShowMessage('程序已经在运行了'); Application.Terminate; self.Close();//关闭重复启动的程序 end; //....这是你原来的代码继续下去