if GlobalFindAtom('ZDH生产安全检查远程核查系统')=0 then
  begin
    GlobalAddAtom('ZDH生产安全检查远程核查系统')
  end
  else
  begin
//    ShowMessage('已经运行了巡更巡检数据发送系统');
   Close;
   exit;
  end;================================
有劳大家来解释这个函数一下,不太明白是怎么回事?

解决方案 »

  1.   

    GlobalAddAtom函数
    向全局原子添加一个255个字节以内的字符串
    ---------------------------------------------
    GlobalFindAtom//这里就是
    来检查是否已经存在该全局原子
    ---------------------------------------------
    用GlobalDeleteAtom函数
    删除添加的全局原子
      

  2.   

    举个例子
    让程序只运行一个实例(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下通过。