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 + -
显示快捷键?