1、安装UniqueInstance组件(可下载包安装,也可以在线安装)
2、在窗口中加TUniqueInstance控件。在system的选项卡下,一个红色1的控件
3、设置TUniqueInstance的enabled为真
4、在UniqueInstance1OtherInstance事件中加处理程序 。如 Application.BringToFront;   使程序显示到最前面

2024年12月28日

方法二

在项目文件中

uses
AdvancedSingleInstance, //注意:必须引用该单元!!!必须在Interfaces单元和Forms单元前
Interfaces,
Forms,.....;

begin
Application.Initialize;
Application.SingleInstanceEnabled := true;
Application.SingleInstance.Start;
if Application.SingleInstance.IsServer then
begin
Application.CreateForm(TForm1, Form1);
//创建其它窗口
Application.Run;
end
else
ShowMessage('程序已打开,不能打开多个程序!');
end.

方法三

var
AppMutex: THandle;

begin
Application.Initialize;
if OpenMutex(MUTEX_ALL_ACCESS, False, PChar('唯一标识')) = 0 then
begin
AppMutex := CreateMutex(nil, False, PChar('唯一标识'));
...
Application.Run;
CloseHandle(AppMutex);
end
else
Application.Terminate;
end.

posted on 2023-12-19 20:06  禁卫军  阅读(77)  评论(0编辑  收藏  举报