我想问下 我做了个简单的程序  怎么让他不能多开呢 ?  有没有简单有效的办法?

解决方案 »

  1.   

    楼主可以参考这个帖子的例子~~
    http://topic.csdn.net/t/20041130/11/3601156.html
      

  2.   

    createmutex(nil,false,'mailfinder');
      if getlasterror=ERROR_ALREADY_EXISTS then
      begin
        messagedlg('邮件小帮手已经运行!',mterror,[mbok],0);
        halt(0);
      end;
      

  3.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};{$R *.res}begin
      createmutex(nil,false,'mailfinder'); 
      if getlasterror=ERROR_ALREADY_EXISTS then 
      begin 
        messagedlg('邮件小帮手已经运行!',mterror,[mbok],0); 
        halt(0); 
      end;
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  4.   

    通过系统API检查有没有标题相同和程序在运行或者松检查进程列表,已经存在就退出
      

  5.   

    createmutex
    ERROR_ALREADY_EXISTS 
      

  6.   

    program Project1; uses 
      Forms, 
      Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin 
      createmutex(nil,false,'mailfinder'); 
      if getlasterror=ERROR_ALREADY_EXISTS then 
      begin 
        messagedlg('邮件小帮手已经运行!',mterror,[mbok],0); 
        halt(0); 
      end; 
      Application.Initialize; 
      Application.CreateForm(TForm1, Form1); 
      Application.Run; 
    end.可以是可以 但会一直跳出 错误