本站文件搜索 :输入关键字,查找本站您所需要的文件! 本网站已经开通手机终端,手机访问http://www.dnjqxx.com 转至对应的WebApp域名。
当前位置:首页 > 电脑设计 > 电脑设计技巧 > 详细内容
防止应用程序的多个实例运行
发布时间:2015-2-12  阅读次数:3142  字体大小: 【】 【】【

防止应用程序的多个实例运行

 

一、原理


我们在设计软件时需要考虑的一个现实问题是如果用户打开了多个应用程序时应该怎样处理。一般标准的做法是弹出一个提示窗口告诉用户该应用程序已经处于运行中,然后阻止该实例的重复运行。具体实现方法要用到Windows的一个全局同步对象mutex。当第一次启动一个实例时我们使用CreateMutex函数创建一个mutex对象,然后每次启动一个实例时我们都使用OpenMutex函数检查mutex对象的值。若mutex为nil则表示还没有该实例在运行,否则表示已有实例在运行。


二、程序代码


program Project1;


uses  Forms,  windows,  Dialogs,  Unit1 in 'Unit1.pas' {Form1};


{$R *.res}


var mutex:THandle;


begin


 try


 mutex:=OpenMutex(0,false,'mutexname');


 if mutex=0 then //没有该实例在运行


    begin


       mutex:=CreateMutex(nil,true,'mutexname');


       //创建一个名为mutexname的mutex对象


       Application.Initialize;


       Application.CreateForm(TForm1, Form1);


       Application.Run;//启动一个实例


    end


 else //若已有一个实例在运行


    begin


       ShowMessage('应用程序已在运行中!');


       Application.Terminate;//阻止实例的重复运行


    end;


 finally


   ReleaseMutex(mutex);//释放mutex对象


 end;


end.


三、说明


   以上代码应出现在项目文件的启动代码中。该程序用delphi6.0 在windows98上通过。




我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!


电脑技巧学习网站版权所有  地址:广州市海珠区
       本站部分有关软件和系统的内容和观点来自网络,不代表本站观点!特此公告!电脑技巧学习论坛,真诚欢迎热爱探讨电脑技巧的朋友加入电脑技巧学习论坛,将你的观点、见解和作品分享给网友们!电脑技巧网,提供计算机知识,电脑使用技巧,电脑基础知识,让电脑爱好者可以快速学到电脑知识!
 注意事项:电脑不要24小时通电,偶尔会遭遇雷雨天气。会损坏电脑。 


站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

 copyright 2000-2109  ( dnjqxx.com ) All rights reserved   粤ICP备18150927号
广告联系|版权声明|下载帮助|软件发布| 网站地图|

企业简介 |总裁致辞|成长历程|联系我们|组织机构|企业文化

网站统计