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

📄 unit1useunit.~pas

📁 DELPHI 下远程控制源码
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
	  N22.Enabled:=True;
	  
	ToolButton33.Enabled:=True;//复制到.......
	ToolButton34.Enabled:=True;//移动到.......
	N102.Enabled:=True; //复制到.......
	N111.Enabled:=True; //移动到.......	
	 
	if (IdFTCPClient.Connected and isRemoteStat) then
	begin
	   ToolButton42.Enabled:=False;//下载
	   N38.Enabled:=False;         //download  	  
	   if ComboBox1.Text<>'' then  //upload
	      N40.Enabled:=True else N40.Enabled:=False;     
	end;
      end
    end;
  end;//end----with
end;
	 //本地文件目录的复制 6
procedure LocalDirCopy(SDir,TDir:String);
var
   FDCFm:TFDirCopyFm;
begin
   Application.CreateForm(TFDirCopyFm,FDCFm);
   FDCFm.Edit3.Text:=SDir;
   FDCFm.Edit2.Text:=TDir;
   FDCFm.Show;
end;
	//本地文件目录的剪切 7
procedure LocalDirXCopy(SDir,TDir:String);
var
   FDCFm:TFDirXCopyFm;
begin
   Application.CreateForm(TFDirXCopyFm,FDCFm);
   FDCFm.Edit3.Text:=SDir;
   FDCFm.Edit2.Text:=TDir;
   FDCFm.Show;
end;
	 //从远程下载目录文件  8
procedure RemoteDirCopyDown(SDir,TDir:String);
var
   FDCFm:TRemoteDirDLFm;
begin
   Application.CreateForm(TRemoteDirDLFm,FDCFm);
   FDCFm.Edit3.Text:=SDir;
   FDCFm.Edit2.Text:=TDir;
   FDCFm.Show;
end;
	 //从远程移动目录文件  10
procedure RemoteDirMoveDown(SDir,TDir:String);
var
   FDCFm:TRemoteDirMDLFm;
begin
   Application.CreateForm(TRemoteDirMDLFm,FDCFm);
   FDCFm.Edit3.Text:=SDir;
   FDCFm.Edit2.Text:=TDir;
   FDCFm.Show;
end;
	 //在远程主机上创建子文件夹
procedure RemoteDirCreate(TheDir:String;TheTCP:TIdTCPClient);
var
   TheReturnStr:String;
begin
   TheTCP.Write('目录创建'+EOL);
   TheTCP.Write(TheDir+EOL);
   TheReturnStr:=TheTCP.ReadLn(EOL);
   if TheReturnStr<>'OK' then
      application.MessageBox(PChar(TheReturnStr),
		       '远程文件夹创建失败:',MB_OK+MB_ICONSTOP);   	
end;
	 //控制远程主机的文件复制  12 
procedure AtRemoteDirCopy(SDir,TDir:String);
var
   ARCFm:TAtRemoteCopyFm;
begin
   ARCFm:=TAtRemoteCopyFm.Create(nil);
   ARCFm.Edit1.Text:='';
   ARCFm.Edit2.Text:='';
   ARCFm.Edit3.Text:=TDir;
   ARCFm.Edit4.Text:=SDir;
   ARCFm.Show;
end;
	 //控制远程主机的文件剪切或目录移动  13 
procedure AtRemoteDirXCopy(SDir,TDir:String);
var
  ARXCFm:TAtRemoteXCopyFm;
begin
   ARXCFm:=TAtRemoteXCopyFm.Create(nil);
   ARXCFm.Edit1.Text:='';
   ARXCFm.Edit2.Text:='';
   ARXCFm.Edit3.Text:=TDir;
   ARXCFm.Edit4.Text:=SDir;
   ARXCFm.Show;
end;
      //目录状态设置和相关菜单按纽的设置
procedure SetDirButtonState;
begin
   with Form1 do
   begin  
	ToolButton28.Enabled:=True;//复制
	ToolButton27.Enabled:=True;//剪切
	ToolButton30.Enabled:=False;//删除

	if ComboBox1.text='' then  //新建文件夹
	  ToolButton32.Enabled:=False else
	  ToolButton32.Enabled:=True;
	if ComboBox1.text='' then  //新建文件夹
	  N22.Enabled:=False else //新建文件夹
	  N22.Enabled:=True;
	  
	ToolButton33.Enabled:=True;//复制到.......
	ToolButton34.Enabled:=True;//移动到.......
	N102.Enabled:=True; //复制到.......
	N111.Enabled:=True; //移动到.......	
   end;
end;
	 //远程文件执行或打开                15
procedure RemoteFileOpen(TheFile:String;TheTcp:TIdTcpClient);
var
     TheRetStr:String;
begin    
    if Application.MessageBox(PChar(TheFile),				 
			 '=====是否要在远程主机上打开该文件?=====',
			 MB_OKCANCEL+MB_ICONQUESTION)=IDOK then
     begin 
       Try
	 TheTCP.Write('远程执行'+EOL);
	 TheTCP.Write(TheFile+EOL);
	 TheRetStr:=TheTCP.ReadLn(EOL);
       except
	 Application.MessageBox('由于网络的原因,操作可能不成功,'+
		    #10#13+'请网络恢复后仔细检查操作的结果。',				 
		'网络失败',
			 MB_OK+MB_ICONSTOP);
	 exit;
       end;
       Application.MessageBox(PChar(TheRetStr),'远程信息反馈:',
			 MB_OK+MB_ICONINFORMATION);	
    end;
end;
	 //获取本地文件或文件夹的属性         16
procedure GetLocalFileAttr(TheDFile:String;isDir:boolean);
var 
   sr:TSearchRec;
   FileAttrs,iFCount:integer;
   LocalFileTime:TFileTime;
   DosFileTime : DWORD;
   TheFL:TStringList; 
begin
    if not isDir then
    begin
	if FindFirst(TheDFile,faAnyFile, sr) = 0 then
	begin
	  FileTypeFm.Caption:='查看文件属性:';
	  FileTypeFm.Edit7.Text:=ExtractFileName(TheDFile);
	  FileTypeFm.Edit1.Text:=ExtractFileExt(TheDFile);
	  FileTypeFm.Edit2.Text:=ExtractFilePath(TheDFile);
	  FileTypeFm.Edit3.Text:=IntToStr(sr.Size)+'字节';
	  //文件创建时间
	  FileTimeToLocalFileTime(sr.FindData.ftCreationTime,LocalFileTime);
	  FileTimeToDosDateTime(LocalFileTime,
		     LongRec(DosFileTime).Hi,LongRec(DosFileTime).Lo);
	  FileTypeFm.Edit4.Text:=DateTimeToStr(FileDateToDateTime(DosFileTime));	  
	  //文件修改时间
	  FileTypeFm.Edit5.Text:=DateTimeToStr(FileDateToDateTime(sr.Time));
	  //文件最后访问时间
	  FileTimeToLocalFileTime(sr.FindData.ftLastAccessTime,LocalFileTime);
	  FileTimeToDosDateTime(LocalFileTime,
			     LongRec(DosFileTime).Hi,LongRec(DosFileTime).Lo);
	  FileTypeFm.Edit6.Text:=DateTimeToStr(FileDateToDateTime(DosFileTime));
	  //设置文件读写属性
	  FileTypeFm.CheckBox1.Checked:=(sr.Attr and faReadOnly)=faReadOnly;
	  FileTypeFm.CheckBox2.Checked:=(sr.Attr and faHidden)=faHidden;
	  FileTypeFm.CheckBox3.Checked:=(sr.Attr and faArchive)=faArchive;
	  FileTypeFm.CheckBox4.Checked:=(sr.Attr and faSysFile)=faSysFile;
          FileTypeFm.Tag:=1;//表示本地
	  FileTypeFm.Show;
	end;
	FindClose(sr);
    end;
    if isDir then
    begin
       if TheDFile[length(TheDFile)]='\' then
	    TheDFile:=StrUtils.LeftStr(TheDFile,length(TheDFile)-1);
       TheFL:=TStringList.Create;
       TheGFDirSize:=0;
       TheFolderCount:=0;
       DirTypeFm.Tag:=1;//表示本地
       DirTypeFm.Caption:='请稍侯,正在统计... ..';
       DirTypeFm.Show;
       GetFileList(TheDFile+'\',TheFL);

       DirTypeFm.Caption:='属性查看:';	       
       iFCount:=TheFL.Count;
       DirTypeFm.Edit6.Text:=ExtractFileName(TheDFile);	  
       DirTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
       DirTypeFm.Edit3.Text:=IntToStr(TheGFDirSize)+'字节'; //目录文件大小
       DirTypeFm.Edit4.Text:=IntToStr(iFCount)+'个文件,'+
		   ' 子文件夹'+IntToStr(TheFolderCount)+'个'; //目录文件数
       
       TheFL.Free;
       if FindFirst(TheDFile,faAnyFile, sr) = 0 then
	begin
	  DirTypeFm.Edit5.Text:=DateTimeToStr(FileDateToDateTime(sr.Time)); //创建时间
	  DirTypeFm.CheckBox1.Checked:=(sr.Attr and faReadOnly)=faReadOnly;
	  DirTypeFm.CheckBox2.Checked:=(sr.Attr and faHidden)=faHidden;
	  DirTypeFm.CheckBox3.Checked:=(sr.Attr and faArchive)=faArchive;
	end;
       FindClose(sr);
    end;
end;
	 //查看远程的文件或目录属性-------------17
procedure GetRemoteFileAttr(TheDFile:String;isDirName:boolean); 
var
   ReadFDSize:integer;    //read The dir tatolSize
   ReadInclude:String;    // read the Dir Include
   ReadCreateTime:string; //read Dir Create time
   ReadFDAttr:integer; //read directory Attr
   
   ReadFSize:integer; // read file size 
   ReadFCreateTime:String;  //...
   ReadFWriteTime :String;  //...
   ReadFAccessTime:String;  //...
   ReadFAttr     :integer; // read the File Attr
begin
    if isDirName then  //===================================远程目录属性查询
    begin
       if TheDFile[Length(TheDFile)]='\' then 
	 TheDFile:=StrUtils.LeftStr(TheDFile,length(TheDFile)-1);
	 
	 DirTypeFm.Caption:='请稍候,正在从远程查询信息... .. .';
	 DirTypeFm.Edit6.Text:=ExtractFileName(TheDFile); 	  
	 DirTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
	 DirTypeFm.Tag:=2;
	 DirTypeFm.Show;
	 //DirTypeFm.Enabled:=False;

	 Form1.IdFTCPClient.Write('目录属性'+EOL);   //发送查询命令
	 Form1.IdFTCPClient.Write(TheDFile+'\'+EOL);     //发送查询目录

	 ReadFDSize:=Form1.IdFTCPClient.ReadInteger;     //1读查询的文件大小
	 ReadInclude:=Form1.IdFTCPClient.ReadLn(EOL);    //2读包含项值
	 ReadCreateTime:=Form1.IdFTCPClient.ReadLn(EOL); //3读创建时间
	 readFDAttr:=Form1.IdFTCPClient.ReadInteger;     //4读属性值

	 DirTypeFm.Edit3.Text:=IntToStr(ReadFDSize)+'字节';
	 DirTypeFm.Edit4.Text:=ReadInclude;
	 DirTypeFm.Edit5.Text:=ReadCreateTime;

	 DirTypeFm.CheckBox1.Checked:=(ReadFDAttr and faReadOnly)=faReadOnly;
	 DirTypeFm.CheckBox2.Checked:=(ReadFDAttr and faHidden)=faHidden;
	 DirTypeFm.CheckBox3.Checked:=(ReadFDAttr and faArchive)=faArchive;

	DirTypeFm.Caption:='返回远程目录属性:'; 
	//DirTypeFm.Enabled:=True; 
    end; 
    if Not isDirName then//===================================远程文件属性查询
    begin
	 FileTypeFm.Caption:='请稍候,正在从远程查询信息... .. .';

	 FileTypeFm.Edit7.Text:=ExtractFileName(TheDFile);
	 FileTypeFm.Edit1.Text:=ExtractFileExt(TheDFile); 	  
	 FileTypeFm.Edit2.Text:=ExtractFilePath(TheDFile); //位置
	 FileTypeFm.Tag:=2;
	 FileTypeFm.Show;
	// FileTypeFm.Enabled:=False;

	 Form1.IdFTCPClient.Write('文件属性'+EOL);   //发送查询命令
	 Form1.IdFTCPClient.Write(TheDFile+EOL);     //发送查询文件

	 ReadFSize      :=Form1.IdFTCPClient.ReadInteger; //读查询的文件大小
	 ReadFCreateTime:=Form1.IdFTCPClient.ReadLn(EOL); //读创建时间
	 ReadFWriteTime :=Form1.IdFTCPClient.ReadLn(EOL); //读修改时间
	 ReadFAccessTime:=Form1.IdFTCPClient.ReadLn(EOL); //读访问时间
	 readFAttr      :=Form1.IdFTCPClient.ReadInteger; //读属性值

	 FileTypeFm.Edit3.Text:=IntToStr(ReadFSize)+'字节';//设置文件大小
	 FileTypeFm.Edit4.Text:=ReadFCreateTime;            //设置创建时间
	 FileTypeFm.Edit5.Text:=ReadFWriteTime;             //设置修改时间
	 FileTypeFm.Edit6.Text:=ReadFAccessTime;             //设置访问时间
	 
	 FileTypeFm.CheckBox1.Checked:=(ReadFAttr and faReadOnly)=faReadOnly;
	 FileTypeFm.CheckBox2.Checked:=(ReadFAttr and faHidden)=faHidden;
	 FileTypeFm.CheckBox3.Checked:=(ReadFAttr and faArchive)=faArchive;
	 FileTypeFm.CheckBox4.Checked:=(ReadFAttr and faSysFile)=faSysFile;

	 FileTypeFm.Caption:='返回远程文件属性:';
	 //FileTypeFm.Enabled:=True; 
    end;
end;
	 //更改远程文件或目录的名称          18
procedure RenameRemoteName(TheOldName,TheNewName:String;TheTcp:TIdTcpClient);
var
   TheRetStr:String;
begin
  Try
   TheTcp.Write('名称更改'+EOL);
   TheTcp.Write(TheOldName+EOL);
   TheTcp.Write(TheNewName+EOL);
   TheRetStr:=TheTcp.ReadLn(EOL);
   Form1.TreeView1DblClick(nil);
   Application.MessageBox(PChar(TheRetStr),'远程信息反馈:',
					   MB_OK+MB_ICONEXCLAMATION);
  except
     Application.MessageBox('请检查网络是否开通!',
			      '远程操作失败',
			      MB_OK+MB_ICONSTOP);
  end;			      
end;
end.

⌨️ 快捷键说明

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