delphi 同时只能够运行一个程序。(网上搜的)

在Delphi项目中,通过引用Windows库并使用CreateMutex函数,可以实现应用程序的单实例运行。当检测到互斥量Error_Already_Exists时,会阻止第二个实例的启动,显示错误提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先在项目文件(*.dpr)uses段中添加Windows的引用,然后声明一个hWnd类型的变量hMutex

var

    hMutex:hWnd;

最后在项目文件的beginend中添加以下代码:

  Application.Initialize;

  Application.Title:='test';

  CreateMutex(nil,false,'test');

  if GetLastError<>Error_Already_Exists then

  begin

    Application.CreateForm(TForm1, Form1);

    Application.Run;

  end

  else

  begin

    Application.MessageBox('本程序只允许同时运行一个','Error');

  end;

Application对象的Title属性的值可以根据自己的需要设置。通过CreateMutex函数来创建一个互斥量,如果GetLastError不等于Error_Already_Exists,也就是本程序的实例没有运行,那么就正常启动程序,反之则表示本程序的实例已经在运行,那么就会弹出一个对话框提示用户,不启动程序。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值