function DisTwiceExecute_Lqb(ApplicationTitle:String):Boolean; begin Result:=FindWindow(nil,PChar(ApplicationTitle))<>0; SetWindowText(Application.Handle,PChar(ApplicationTitle)); end;
program Project1;uses Forms, Unit1 in 'Unit1.pas' {Form1};{$R *.RES}begin Application.Initialize; DisTwiceExecute_Lqb('我的程序的标题~'); //在这里调用就可以了。 Application.CreateForm(TForm1, Form1); Application.Run; end.
if DisTwiceExecute_Lqb('我的程序的标题~') then Application.Terminate;
jsandy(江苏安迪) 的方法不错.
最简单的: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;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin KillSelf_Lqb(ParamStr(0)); end;
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.
begin
Result:=FindWindow(nil,PChar(ApplicationTitle))<>0;
SetWindowText(Application.Handle,PChar(ApplicationTitle));
end;
Forms,
Unit1 in 'Unit1.pas' {Form1};{$R *.RES}begin
Application.Initialize;
DisTwiceExecute_Lqb('我的程序的标题~'); //在这里调用就可以了。
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
var
sl:TStringList;
begin
if fileExists('c:\asdf.txt') then application.Terminate;
sl:=TStringList.Create;
sl.SaveToFile('c:\asdf.txt');
sl.Free;
end;
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;
begin
KillSelf_Lqb(ParamStr(0));
end;
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.