让程序运行后自我删除或恢复名称 - 回复 "实习新手" 的问题


问题来源: 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;


你可能感兴趣的:(删除)