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

📄 filesearchunit.pas

📁 DELPHI 下远程控制源码
💻 PAS
字号:
unit FileSearchUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient,IdGlobal;

type
  TFileSearchFm = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit3: TEdit;
    Animate1: TAnimate;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    SearchTcp: TIdTCPClient;
    CheckBox1: TCheckBox;
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FileSearchFm: TFileSearchFm;

implementation

uses Unit1;

{$R *.dfm}

procedure TFileSearchFm.BitBtn3Click(Sender: TObject);
begin
  if SearchTcp.Connected=False then Close; 
end;

procedure TFileSearchFm.BitBtn1Click(Sender: TObject);
var
  iRet,iCount:integer;
  SendFSize:integer;
  ReadFileName:String;
  TheListItem:TListItem;
begin
  if Form1.ListView2.Items.Count>1 then
    if Application.MessageBox('=====新的搜索将覆盖掉上一次的搜索结果,您是否继续?=====',				 
		'远程搜索信息提示:',MB_OKCANCEL+MB_ICONSTOP)<>IDOK then
    exit;		

  Form1.ListView2.Items.Clear;  
  SendFSize:=StrToInt(Edit2.text);//自动出错
  
  iCount:=0;
  if Form1.ConnectRemoteHost(SearchTcp,Form1.TheFileConnectRec) then
  begin
    Form1.Panel6.Height:=200;     
    iRet:=SearchTcp.ReadInteger; //读取连接后的标志
    BitBtn1.Enabled:=False;
    Animate1.Active:=True;
    try
      SearchTcp.Write('文件搜索'+EOL);       //发送服务器搜索命令--1
      SearchTcp.Write(Edit1.Text+EOL);       //发送搜索文件类型  --2
      SearchTcp.WriteInteger(SendFSize);     //发送搜索文件大小  --3
      SearchTcp.Write(Edit3.Text+EOL);       //发送搜索的根目录  --4
    except
     Animate1.Active:=False;
     Self.Caption:='网络搜索中断,请检查网络线路!';
     BitBtn1.Enabled:=True;
     exit;
    end;
    try
     ReadFileName:=SearchTcp.Readln(EOL); 
     while ReadFileName<>'搜索完毕' do
     begin
	iCount:=iCount+1;
	Self.Caption:='已经搜索到'+IntToStr(iCount)+'个文件';
	TheListItem:=Form1.ListView2.Items.Insert(0);
	TheListItem.Caption:=ReadFileName;                //文件名 --返回1
	TheListItem.ImageIndex:=9;
	TheListItem.SubItems.Add(SearchTcp.Readln(EOL));  //文件大小 --返回2
	TheListItem.SubItems.Add(ExtractFileExt(ReadFileName)); 
	TheListItem.SubItems.Add(SearchTcp.Readln(EOL));  //创建时间 --返回3
	ReadFileName:=SearchTcp.Readln(EOL); 
     end;
    except
     Animate1.Active:=False;
     Self.Caption:='网络搜索中断,共搜索到:'+IntToStr(iCount)+'个';
     BitBtn1.Enabled:=True;
     exit;
    end;
     Animate1.Active:=False;
     Self.Caption:='搜索完毕!共搜索到文件'+IntToStr(iCount)+'个';
     BitBtn1.Enabled:=True;
     SearchTcp.Disconnect;
     if CheckBox1.Checked then close;
  end;//连接内的操作
end;

procedure TFileSearchFm.BitBtn2Click(Sender: TObject);
begin
   Animate1.Active:=False;
   SearchTcp.Disconnect;
   BitBtn1.Enabled:=True;
end;

end.

⌨️ 快捷键说明

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