📄 mainprocunit.pas
字号:
unit MainProcUnit;
interface
uses windows,ComCtrls,IdTCPClient,Classes,StrUtils,SysUtils;
//========================================================================
//远程磁盘信息解析-----------1
Procedure ShowRemoteDrives(ShowVL:TTreeView;DrvList:TStringList);
//远程磁盘信息接收显示-------2
procedure RemoteProcDiskInfo(TheTV:TTreeView;TheTcp:TidTCPClient);
//远程文件目录信息接收显示----3
procedure RemoteProcFileInfo(TheTV:TTreeView;TheSelectNode:TTreeNode;
TheTL:TListView;TheTcp:TidTCPClient);
//显示远程文件目录信息-----4
Procedure ShowRemoteFiles(FList:TStringList;ShowFL:TListView;
ShowDL:TTreeView;TheSelectNode:TTreeNode);
implementation
Procedure ShowRemoteFiles(FList:TStringList;ShowFL:TListView;
ShowDL:TTreeView;TheSelectNode:TTreeNode);
var
i:integer;
TheListItems:TListItem;
TheNode:TTreeNode;
TheFileExt:String;
begin
i:=0;
ShowFL.Clear;
ShowDL.Selected.DeleteChildren;
if FList.Text<>'' then
begin
repeat
if ((FList[i+1]='0') and
(StrToInt(FList[i+2])>15) and
((StrToInt(FList[i+2])<32) or
(StrToInt(FList[i+2])>47))) then
begin
if (FList[i]<>'.') then
if (FList[i]<>'..') then
begin
TheNode:=ShowDL.Items.AddChild(ShowDL.Selected,FList[i]);
TheNode.SelectedIndex:=8;
TheNode.ImageIndex:=7;
TheListItems:=ShowFL.Items.Add;
TheListItems.ImageIndex:=7;
TheListItems.Caption:=FList[i];
TheListItems.SubItems.add('');
TheListItems.SubItems.add('文件夹');
TheListItems.SubItems.add(FList[i+3]);
end;
end else
begin
TheFileExt:=ExtractFileExt(FList[i]);
TheListItems:=ShowFL.Items.Add;
TheListItems.Caption:=FList[i];
TheListItems.SubItems.add(FList[i+1]);
TheListItems.SubItems.Add(TheFileExt);
//=============================================设置显示分类===
TheListItems.ImageIndex:=9;
if UpperCase(TheFileExt)='.TXT' then TheListItems.ImageIndex:=10;
if UpperCase(TheFileExt)='.INI' then TheListItems.ImageIndex:=11;
if UpperCase(TheFileExt)='.SYS' then TheListItems.ImageIndex:=12;
if UpperCase(TheFileExt)='.DLL' then TheListItems.ImageIndex:=12;
if UpperCase(TheFileExt)='.VXD' then TheListItems.ImageIndex:=12;
if UpperCase(TheFileExt)='.COM' then TheListItems.ImageIndex:=14;
if UpperCase(TheFileExt)='.EXE' then TheListItems.ImageIndex:=14;
if UpperCase(TheFileExt)='.BAT' then TheListItems.ImageIndex:=15;
if UpperCase(TheFileExt)='.ZIP' then TheListItems.ImageIndex:=16;
if UpperCase(TheFileExt)='.CAB' then TheListItems.ImageIndex:=16;
if UpperCase(TheFileExt)='.RAR' then TheListItems.ImageIndex:=16;
if UpperCase(TheFileExt)='.DOC' then TheListItems.ImageIndex:=17;
if UpperCase(TheFileExt)='.XLS' then TheListItems.ImageIndex:=18;
if UpperCase(TheFileExt)='.PPT' then TheListItems.ImageIndex:=19;
if UpperCase(TheFileExt)='.JPG' then TheListItems.ImageIndex:=20;
if UpperCase(TheFileExt)='.JPEG' then TheListItems.ImageIndex:=21;
if UpperCase(TheFileExt)='.RLE' then TheListItems.ImageIndex:=22;
if UpperCase(TheFileExt)='.PSD' then TheListItems.ImageIndex:=23;
if UpperCase(TheFileExt)='.PDD' then TheListItems.ImageIndex:=23;
if UpperCase(TheFileExt)='.FON' then TheListItems.ImageIndex:=24;
if UpperCase(TheFileExt)='.TTF' then TheListItems.ImageIndex:=24;
if UpperCase(TheFileExt)='.TTC' then TheListItems.ImageIndex:=24;
if UpperCase(TheFileExt)='.RA' then TheListItems.ImageIndex:=25;
if UpperCase(TheFileExt)='.RM' then TheListItems.ImageIndex:=25;
if UpperCase(TheFileExt)='.AVI' then TheListItems.ImageIndex:=26;
if UpperCase(TheFileExt)='.WAV' then TheListItems.ImageIndex:=27;
if UpperCase(TheFileExt)='.MID' then TheListItems.ImageIndex:=27;
if UpperCase(TheFileExt)='.RMI' then TheListItems.ImageIndex:=27;
if UpperCase(TheFileExt)='.MIDI' then TheListItems.ImageIndex:=27;
if UpperCase(TheFileExt)='.MIDI' then TheListItems.ImageIndex:=27;
if UpperCase(TheFileExt)='.BMP' then TheListItems.ImageIndex:=28;
if UpperCase(TheFileExt)='.GIF' then TheListItems.ImageIndex:=29;
if UpperCase(TheFileExt)='.CHM' then TheListItems.ImageIndex:=30;
if UpperCase(TheFileExt)='.HLP' then TheListItems.ImageIndex:=31;
if UpperCase(TheFileExt)='.SWF' then TheListItems.ImageIndex:=32;
if UpperCase(TheFileExt)='.XML' then TheListItems.ImageIndex:=33;
if UpperCase(TheFileExt)='.HTML' then TheListItems.ImageIndex:=34;
if UpperCase(TheFileExt)='.MHT' then TheListItems.ImageIndex:=34;
if UpperCase(TheFileExt)='.LOG' then TheListItems.ImageIndex:=35;
if UpperCase(TheFileExt)='.EML' then TheListItems.ImageIndex:=36;
if UpperCase(TheFileExt)='.SCR' then TheListItems.ImageIndex:=37;
if UpperCase(TheFileExt)='.HTM' then TheListItems.ImageIndex:=38;
if UpperCase(TheFileExt)='.MP3' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.MP2' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.MP1' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.CDA' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.SND' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.AU' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.AIF' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.AIFC' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.AIFF' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.WMA' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.ASX' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.WAX' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.W3U' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.WVX' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.WMX' then TheListItems.ImageIndex:=39;
if UpperCase(TheFileExt)='.MPEG' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MPG' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MLV' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MPA' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MPE' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.WMV' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MPV' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.ASF' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.W1V' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.KPL' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.MOV' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.QT' then TheListItems.ImageIndex:=40;
if UpperCase(TheFileExt)='.ART' then TheListItems.ImageIndex:=41;
if UpperCase(TheFileExt)='.DJV' then TheListItems.ImageIndex:=42;
if UpperCase(TheFileExt)='.EMF' then TheListItems.ImageIndex:=43;
if UpperCase(TheFileExt)='.EPS' then TheListItems.ImageIndex:=44;
if UpperCase(TheFileExt)='.FPX' then TheListItems.ImageIndex:=45;
if UpperCase(TheFileExt)='.ICN' then TheListItems.ImageIndex:=46;
if UpperCase(TheFileExt)='.ICO' then TheListItems.ImageIndex:=47;
if UpperCase(TheFileExt)='.IFF' then TheListItems.ImageIndex:=48;
if UpperCase(TheFileExt)='.KDC' then TheListItems.ImageIndex:=49;
if UpperCase(TheFileExt)='.LDF' then TheListItems.ImageIndex:=50;
if UpperCase(TheFileExt)='.LWF' then TheListItems.ImageIndex:=51;
if UpperCase(TheFileExt)='.MAG' then TheListItems.ImageIndex:=52;
if UpperCase(TheFileExt)='.PBM' then TheListItems.ImageIndex:=53;
if UpperCase(TheFileExt)='.PCD' then TheListItems.ImageIndex:=54;
if UpperCase(TheFileExt)='.PCX' then TheListItems.ImageIndex:=55;
if UpperCase(TheFileExt)='.PDF' then TheListItems.ImageIndex:=56;
if UpperCase(TheFileExt)='.PGM' then TheListItems.ImageIndex:=57;
if UpperCase(TheFileExt)='.PIC' then TheListItems.ImageIndex:=58;
if UpperCase(TheFileExt)='.PICT' then TheListItems.ImageIndex:=59;
if UpperCase(TheFileExt)='.PIX' then TheListItems.ImageIndex:=60;
if UpperCase(TheFileExt)='.PNG' then TheListItems.ImageIndex:=61;
if UpperCase(TheFileExt)='.PPM' then TheListItems.ImageIndex:=62;
if UpperCase(TheFileExt)='.PS' then TheListItems.ImageIndex:=63;
if UpperCase(TheFileExt)='.PSP' then TheListItems.ImageIndex:=64;
if UpperCase(TheFileExt)='.RAS' then TheListItems.ImageIndex:=65;
if UpperCase(TheFileExt)='.RS' then TheListItems.ImageIndex:=66;
if UpperCase(TheFileExt)='.SGI' then TheListItems.ImageIndex:=67;
if UpperCase(TheFileExt)='.TGA' then TheListItems.ImageIndex:=68;
if UpperCase(TheFileExt)='.TIF' then TheListItems.ImageIndex:=69;
if UpperCase(TheFileExt)='.WMF' then TheListItems.ImageIndex:=70;
if UpperCase(TheFileExt)='.XBM' then TheListItems.ImageIndex:=71;
if UpperCase(TheFileExt)='.XPM' then TheListItems.ImageIndex:=72;
//=============================================设置显示分类===
TheListItems.SubItems.add(FList[i+3]);
end;
i:=i+4;
until i>FList.Count-1;
end;
end;
//远程文件目录信息接收显示---3
procedure RemoteProcFileInfo(TheTV:TTreeView;TheSelectNode:TTreeNode;
TheTL:TListView;TheTcp:TidTCPClient);
var
TheSize,i:integer;
TheStrStream:TStringStream;
TheStrlist :TStringList;
begin
TheSize:=0;
Try
TheStrStream:=TStringStream.Create('');
except
exit;
end;
Try
TheStrList:=TStringList.Create;
except
TheStrStream.Free;
exit;
end;
Try
TheSize:=TheTcp.ReadInteger;
TheTcp.ReadStream(TheStrStream,TheSize);
except
TheStrStream.Free;
TheStrList.Free;
exit;
end;
TheStrList.Text:=TheStrStream.DataString;
ShowRemoteFiles(TheStrList,TheTL,TheTV,TheSelectNode);
//============================================================
TheStrStream.Free;
TheStrList.Free;
end;
Procedure ShowRemoteDrives(ShowVL:TTreeView;DrvList:TStringList); //解析磁盘数据
var
i,j,iPos :integer;
iNode :TTreeNode;
TempStr :String;
begin
for j:=0 To ShowVL.Items.Count-1 do
begin
if LeftStr(ShowVL.Items[j].Text,8)='远程电脑' then
begin
iPos:=j;
break;
end;
end;
ShowVL.Items[iPos].DeleteChildren;
for i:=0 to DrvList.Count-1 do
begin
iNode:=ShowVL.Items.AddChild(ShowVL.Items[iPos],DrvList[i]);
TempStr:=LeftStr(DrvList[i],5);
Delete(TempStr,1,1);
if TempStr=':(软盘' then
begin
iNode.ImageIndex:=2;
iNode.SelectedIndex:=2;
end;
if TempStr=':(硬盘' then
begin
iNode.ImageIndex:=3;
iNode.SelectedIndex:=3;
end;
if TempStr=':(网络' then
begin
iNode.ImageIndex:=6;
iNode.SelectedIndex:=6;
end;
if TempStr=':(光盘' then
begin
iNode.ImageIndex:=4;
iNode.SelectedIndex:=4;
end;
if TempStr=':(虚拟' then
begin
iNode.ImageIndex:=5;
iNode.SelectedIndex:=5;
end;
end;
end;
procedure RemoteProcDiskInfo(TheTV:TTreeView;TheTcp:TidTCPClient);
var
TheSize,i:integer;
TheStrStream:TStringStream;
TheStrlist :TStringList;
begin
TheSize:=0;
Try
TheStrStream:=TStringStream.Create('');
except
exit;
end;
Try
TheStrList:=TStringList.Create;
except
TheStrStream.Free;
exit;
end;
Try
TheSize:=TheTcp.ReadInteger;
TheTcp.ReadStream(TheStrStream,TheSize);
except
TheStrStream.Free;
TheStrList.Free;
exit;
end;
TheStrList.Text:=TheStrStream.DataString;
ShowRemoteDrives(TheTV,TheStrList);
//============================================================
TheStrStream.Free;
TheStrList.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -