首页 > 编程 > Delphi > 正文

防止多个相同的EXE程序同时运行

2019-09-08 23:09:04
字体:
来源:转载
供稿:网友
                                                                                                                                                       
                       熟悉Delphi的朋友都知道,用Delphi编写的程序如果不加任何控制,编译出来的EXE程序可以多个同时运行。如果在程序中加入下列代码就可解决这一问题:

   .......

   public

   aa:word;

   .......

   procedure TForm1.FormCreate(Sender: TObject);

   begin

   //搜索系统数据库看程序是否正在运行

   if GlobalFindAtom(''Project1'') =0  then  // Project1为EXE文件名

   //假如没有找到该EXE文件,就把此EXE文件名添加到系统数据库

   aa := GlobalAddAtom('' Project1'')

   else

   begin  //如果该程序已经运行,显示信息并退出程序

   MessageDlg(''该程序正在运行!'', mtWarning, [mbOK], 0);

   Halt;

   end;

   end;

   .......

   procedure TForm1.FormDestroy(Sender: TObject);

   begin

   { 退出程序时,从数据表中删除添加的文件名 }

   GlobalDeleteAtom(aa);

   end;

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选