⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 AutoUpdate是一个通过网络对软件进行自动更新的系统。可以自动根据软件的版本号、最后修改时间、文件的大小等因素自动的判断哪些文件应该
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Transfer, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdFTP, XPMan, ComCtrls, IdHTTP,
  IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ProgressBar1: TProgressBar;
    XPManifest1: TXPManifest;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    IdFTP1: TIdFTP;
    Memo1: TMemo;
    Button4: TButton;
    Button5: TButton;
    IdHTTP1: TIdHTTP;
    Button6: TButton;
    IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
    IdHTTP2: TIdHTTP;
    Button7: TButton;
    procedure Button1Click(Sender: TObject);
    procedure IdFTP1WorkEnd(Sender: TObject );
    procedure IdFTP1Work(Sender: TObject; const AWorkCount: Integer);
    procedure IdFTP1WorkBegin(Sender: TObject; const AWorkCountMax: Integer);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  XmlDoc, XMLIntf, uFileAction;
  
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Transfer: TTransfer;
  Stream : TFileStream;
begin
  Transfer := TFTPTransfer.Create;
  Transfer.OnTransfer := IdFTP1Work;
  Transfer.OnTransferStart := IdFTP1WorkBegin;
  Transfer.OnTransferEnd := IdFTP1WorkEnd;
  Transfer.Host := '192.168.168.8';
  Transfer.User := 'Anonymous';
  Transfer.Password := '';
  Transfer.CurrentDir := '/Upload';
  Transfer.FileName := 'rtxclt_std_32_build_1916.exe';
  try
    Stream := TFileStream.Create('C:\11.exe', fmCreate);

    Transfer.Get(Stream);
    //MStream
  finally
    FreeAndNil(Stream);
    FreeAndNil(Transfer)
  end;
end;

procedure TForm1.IdFTP1WorkEnd(Sender: TObject);
begin
  ShowMessage('Transfer OK');
end;

procedure TForm1.IdFTP1Work(Sender: TObject; const AWorkCount: Integer);
begin
  ProgressBar1.Position := AWorkCount;
  self.Update;
end;

procedure TForm1.IdFTP1WorkBegin(Sender: TObject; const AWorkCountMax: Integer);
begin
  ProgressBar1.Max := AWorkCountMax;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Xml: IXMLDocument;
  Node : IXMLNode;
begin
  Xml := NewXmlDocument();
  Xml.LoadFromFile('Z:\Work\DELPHI\AutoUpdate\UpdateList.xml');
  //ShowMessage(Xml.DocumentElement.ChildNodes[0].text);
  Node := Xml.DocumentElement;
  ShowMessage(Node.ChildNodes[0].ChildNodes['FileURL'].text );
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  FileAction: TFileAction;
begin
  if OpenDialog1.Execute then
  begin
    FileAction := TFileAction.Create(OpenDialog1.FileName);
    //ShowMessage(DateTimetoStr(fileAction.GetFileCreateDate));
  end;
end;

procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
  Memo1.Lines.Add(AStatusText);
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  try
    IdFtp1.Connect();
    if IdFTP1.Connected() then
    begin
      IdFtp1.ChangeDir('/Download');
      IdFtp1.Get('104-0480_img.jpg', 'c:\104-0480_img.jpg', true);
    end;
  except
    raise;
  end;
end;

procedure TForm1.Button5Click(Sender: TObject);
var
  stream: TStringStream;
  MemStream: TFileStream;
begin
  Stream := TStringStream.Create('');
  MemStream := TFileStream.Create('C:\1.exe', fmCreate);
  try
    //IdHTTP1.ge
    IdHTTP1.Get('http://www.gfsoft.com/update/UpdateList.xml', Stream);
    //IdHTTP1.Get('http://www.gfsoft.com/update/UpdateList.xml', Stream);
    Memo1.Lines.Add(Stream.DataString);
    IdHttp1.Head('http://www.gfsoft.com/update/CReporter.exe');
    ShowMessage(IntToStr(IdHttp1.Response.ContentLength));
    IdHttp1.Get('http://www.gfsoft.com/update/CReporter.exe', MemStream);
    //MemStream.SaveToFile('c:\1.exe');
  finally
    FreeAndNIl(Stream);
    FreeAndNil(MemStream);
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
  FileAction:TFileAction;
begin
  FileAction := TFileAction.Create('C:\Program Files\Microsoft Office\OFFICE11\winword.exe');
  FileAction.Execute(SW_SHOW);
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  IdHttp2.Get('https://192.168.168.164/1.jpg');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -