问题来源:http://www.cnblogs.com/del/archive/2008/08/12/1266368.html#2028808
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormDestroy(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormDestroy(Sender: TObject); const batFile = 'tmp.bat'; begin ChDir(ExtractFilePath(Application.ExeName)); with TStringList.Create do begin Add('del ' + Application.ExeName); Add('del ' + batFile); SaveToFile(batFile); Free; end; WinExec(batFile, SW_HIDE); end; end.
改回应有的名称:
procedure TForm1.FormDestroy(Sender: TObject); const batFile = 'tmp.bat'; oldName = '123.exe'; //假如这是要恢复的名称 begin if ExtractFileName(Application.ExeName) = oldName then Exit; ChDir(ExtractFilePath(Application.ExeName)); with TStringList.Create do begin Add('ren ' + Application.ExeName + ' ' + oldName); Add('del ' + batFile); SaveToFile(batFile); Free; end; WinExec(batFile, SW_HIDE); end;