程序调用bat执行taskkill删除自身

procedure TForm1.Label4Click(Sender: TObject);

var f:textfile;
      a,dir,appname:String;
begin
  //killself
  a:=paramstr(0);
  dir:=ExtractFileDir(a);
  assignfile(f, dir + '\delself.bat');
  appname:= ExtractFileName(Application.ExeName);
  rewrite(f);
  writeln(f, 'Taskkill /f /im ' + appname);  //去掉参数 /i 否则会停止往下执行 /t解释: 终止指定的进程和任何由此启动的子进程。
  Writeln(f, 'ping -n 1 127.0.0.1>nul');  //加延迟 
  writeln(f, 'del ' + PChar('"' + Pchar(a) + '"'));
  writeln(f, 'del %0');
  writeln(f, 'exit');
  closefile(f);
  winexec(PAnsiChar(AnsiString(dir + '\delself.bat')), SW_hide);
end;

猜你喜欢

转载自www.cnblogs.com/lijianqiang/p/11934777.html
今日推荐