zoukankan      html  css  js  c++  java
  • 批处理自己更新自己

    class procedure TVTUpgrader.UpdateSelf(const FileName: TVTString);
    var
      LBatchFile: TextFile;
      LBatchFileName: TVTString;
      LProcessInfo: TProcessInformation;
      LStartUpInfo: TStartupInfo;
    begin
      //批处理文件名
      LBatchFileName := ExtractFilePath(ParamStr(0)) + '_deleteme.bat';

      //打开文件,设置覆盖模式
      AssignFile(LBatchFile, LBatchFileName);
      Rewrite(LBatchFile);

      //写入批处理内容
      Writeln(LBatchFile, ':try');
      Writeln(LBatchFile, 'del "' + ParamStr(0) + '"');
      Writeln(LBatchFile, 'if exist "' + ParamStr(0) + '"' + ' goto try');
      Writeln(LBatchFile, 'copy "' + FileName + '" "' + ParamStr(0) + '"');
      Writeln(LBatchFile, 'del "' + FileName + '"');
      Writeln(LBatchFile, 'del %0');

      //关闭文件
      CloseFile(LBatchFile);

      //创建新进程运行批处理文件
      FillChar(LStartUpInfo, SizeOf(LStartUpInfo), $00);
      LStartUpInfo.dwFlags := STARTF_USESHOWWINDOW;
      LStartUpInfo.wShowWindow := SW_HIDE;
      if CreateProcess(nil, PChar(LBatchFileName), nil, nil, False,
        IDLE_PRIORITY_CLASS, nil, nil, LStartUpInfo, LProcessInfo) then
      begin
        CloseHandle(LProcessInfo.hThread);
        CloseHandle(LProcessInfo.hProcess);
      end;
    end;

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/mikemao/p/2207377.html
Copyright © 2011-2022 走看看