请问各们高手我怎能让我编译好的文件只能运行一次呀,如果我在运行时也没有错误提示,就是打不开呀,我将怎样做呀,

解决方案 »

  1.   

    function DisTwiceExecute_Lqb(ApplicationTitle:String):Boolean;
    begin
    Result:=FindWindow(nil,PChar(ApplicationTitle))<>0;
    SetWindowText(Application.Handle,PChar(ApplicationTitle));
    end;
      

  2.   

    program Project1;uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1};{$R *.RES}begin
      Application.Initialize;
      DisTwiceExecute_Lqb('我的程序的标题~');  //在这里调用就可以了。
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  3.   

    if DisTwiceExecute_Lqb('我的程序的标题~') then Application.Terminate;
      

  4.   

    jsandy(江苏安迪) 的方法不错.
      

  5.   

    最简单的:procedure TForm1.FormCreate(Sender: TObject);
    var
      sl:TStringList;
    begin
      if fileExists('c:\asdf.txt') then application.Terminate;
      sl:=TStringList.Create;
      sl.SaveToFile('c:\asdf.txt');
      sl.Free;
    end;
      

  6.   

    jsandy(江苏安迪) 的方法只是避免同时运行程序的两个副本,而不是禁止程序再次运行。与问题不符。
      

  7.   

    不知道楼主到底是何意哦,要不这样最好了:procedure KillSelf_Lqb(File_Name:String);
    var
    BatFile:TextFile;
    begin
    Assign(BatFile,ExtractFilePath(ParamStr(0))+'KillSelf.bat');
      Rewrite(BatFile);
      Writeln(BatFile,'@Echo off');
      Writeln(BatFile,':Re');
    Writeln(BatFile,'Del '+ExtractFileName(File_Name));
      Writeln(BatFile,'if Exist '+ExtractFileName(File_Name)+' Goto Re');
      Writeln(BatFile,'Del %0.bat');
      Writeln(BatFile,'Del %0');
      CloseFile(BatFile);
      WinExec('KillSelf.bat',0);
    end;
      

  8.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
    KillSelf_Lqb(ParamStr(0));
    end;
      

  9.   


    implementation 
    var hnd: THandle;initialization
        hnd := CreateMutex(nil, True, 'irgendwaseinmaliges');
        if GetLastError = ERROR_ALREADY_EXISTS then Halt;finalization
        if hnd <> 0 then CloseHandle(hnd);
    end.