delphi 只运行一个程序

本文介绍了一种使用全局原子方法防止Delphi程序多次启动的技术。通过向系统添加全局原子并检查其是否存在,确保程序仅运行一个实例。此外,还提供了一个示例代码,展示了如何实现这一功能。
部署运行你感兴趣的模型镜像
举个例子  
  让程序只运行一个实例(Delphi篇)  
  -------------------------------------------  
  全局原子法     
    
         可以利用向系统添加全局原子的方法,来防止多个程序实例的运行。全局原子由Windows   系统负责维持,它能保证其中的每个原子都是唯一的,管理其引用计数,并且当该全局原子的引用计数为0时,从内存中清除。我们用GlobalAddAtom   函数向全局原子添加一个255个字节以内的字符串,用GlobalFindAtom来检查是否已经存在该全局原子,最后在程序结束时用GlobalDeleteAtom函数删除添加的全局原子。示例如下:    
    Uses   Windows    
    const   iAtom=‘SingleApp’;    
    begin    
       if   GlobalFindAtom(iAtom)=0   then    
       begin    
       GlobalAddAtom(iAtom);    
       Application.Initialize;    
       Application.CreateForm(TForm1,Form1);    
       Application.Run;    
       GlobalDeleteAtom(GlobalFindAtom(iAtom));    
       end    
       else    
       MessageBox(0,‘You   can   not   run   a   second   copy   of   this   App’,‘’,mb_OK);    
    end.    
    利用全局原子的引用计数规则,我们还可以判断当前共运行了该程序的多少个实例:    
    var   i:Integer;    
    begin    
       I:=0;    
    while   GlobalFindAtom(iAtom)<>0   do    
       begin    
       GlobalDeleteAtom(GlobalFindAtom(iAtom));    
       i:=i+1;    
       end;    
       ShowMessage(IntToStr(I));    
    end;    
    以上几种方法在笔者的Delphi   4.0,中文Windows95下通过。    

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值