在程序初始化前,检查同类名或是同窗口名的程序是否执行,如果有执行,则强制退出程序。
在项目头文件中加入代码,需要引用Winapi.Windows
示例:
program Project1;
uses
Vcl.Forms,
Winapi.Windows,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
//如果使用类名,改为FindWindow(PChar('TForm1'),nil)
//TForm1是主窗体类名,Form1是主窗体标题
if FindWindow(nil,'Form1') <> 0 then
begin
MessageBox(0,'该程序正在执行中,不能重复执行!','提示',MB_OK + MB_ICONINFORMATION);
Halt(0); //强制退出
end;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.