现在的位置: 首页 > 综合 > 正文

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

2012年08月25日 ⁄ 综合 ⁄ 共 886字 ⁄ 字号 评论关闭
问题来源: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;

抱歉!评论已关闭.