superthrdunit.~pas

来自「DELPHI 下远程控制源码」· ~PAS 代码 · 共 82 行

~PAS
82
字号
unit SuperThrdUnit;

interface

uses
  Classes, IdTCPServer,IdGlobal,ComCtrls,SysUtils;

type
  TSuperDirThread = class(TThread)
  private
    TheDir:String;
    SysThread:TIdPeerThread;
    Procedure RegisteLog;
  protected
    
    procedure Execute; override;
  public 
    constructor Create(AThread: TIdPeerThread;TDir:string);
    destructor Destroy; override;
  end;

implementation
uses APFUnit,Unit2;

constructor TSuperDirThread.Create(AThread: TIdPeerThread;TDir:String);
begin
   inherited Create(True);
   TheDir:=TDir;
   SysThread:=AThread;
   FreeOnTerminate:=True;
   Suspended := false;
end;
procedure TSuperDirThread.RegisteLog;
var
  TheListItem:TListItem;
begin
  if Form2.LogCheckBox.Checked=false then exit;
  TheListItem:=Form2.ListView5.Items.Insert(0);
  TheListItem.Caption:=SysThread.Connection.Binding.PeerIP;
  TheListItem.StateIndex:=9;
  TheListItem.SubItems.Add('超级用户');
  TheListItem.SubItems.Add('目录浏览');
  TheListItem.SubItems.Add(TheDir);
  TheListItem.SubItems.Add(DateTimeToStr(now));
end;
procedure TSuperDirThread.Execute;
var
   FDStream:TStringStream;
begin
   Synchronize(RegisteLog);
   Try
     FDStream:=TStringStream.Create('');
   except
     SysThread.Connection.Disconnect;
     self.Terminate;
     exit;
   end;
   if TheDir[Length(TheDir)]='\' then
      GetFilesStream(TheDir+'*.*',FDStream) else
      GetFilesStream(TheDir+'\*.*',FDStream);
   try
     FDStream.Position:=0;
     SysThread.Connection.WriteInteger(FDStream.Size);
     SysThread.Connection.WriteStream(FDstream);
   except
     SysThread.Connection.Disconnect;
     FDStream.Size:=0;
     FDStream.Free;
     Self.Terminate;
     exit;
   end;
  //------------------------------
   FDStream.Size:=0;
   FDStream.Free;
   self.Terminate;
end;
destructor TSuperDirThread.Destroy;
begin
  inherited destroy;
end;
end.
 

⌨️ 快捷键说明

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