desarrollosconsejeria/aulalinex-portatil-alumno/4.2-16/serveralumnolinex/globales.pas @ 23a384b9
a2ba555f | Elisa | unit globales ;
|
|
{$mode objfpc}{$H+}
|
|||
interface
|
|||
uses
|
|||
unix,Classes, SysUtils,process,IniFiles, HTTPDefs;
|
|||
const
|
|||
PUERTO_ROOT:integer=36999;
|
|||
PUERTO_USUARIO:integer=37000;
|
|||
PUERTO_VNC:integer=5989;
|
|||
var
|
|||
g_directorio_personal:string;
|
|||
g_directorio_recogidos:string;
|
|||
fusuario:string;
|
|||
g_directorio_enviar:string;
|
|||
fcontadorPing:integer=0;
|
|||
fTiempoPing:integer=20;
|
|||
fapagando:boolean=false;
|
|||
fmipuerto:integer;
|
|||
g_maquina_profe:boolean=false;
|
|||
g_finalizar:boolean=false;
|
|||
g_dirmensaje:string;
|
|||
g_soy_canon:Boolean=false;
|
|||
g_export_display:string='';
|
|||
g_home_verdadero:String;
|
|||
g_ancho_pantalla:String;
|
|||
g_alto_pantalla:String;
|
|||
procedure MatarAplicacion(aplica:String);
|
|||
procedure Ejecutar1(comando:string);
|
|||
procedure Ejecutar(comando:string);
|
|||
function CrearArchivoMensaje(TipoMensaje,AsuntoMensaje,ContenidoMensaje:string; ArchivoMensaje:String='0'):boolean;
|
|||
function HallarDatos(Cmd:string):ansistring;
|
|||
procedure exportar_display(usuario:string);
|
|||
implementation
|
|||
procedure exportar_display(usuario:string);
|
|||
begin
|
|||
if usuario='aulalinex-alumno' then
|
|||
begin
|
|||
g_soy_canon:=true;
|
|||
g_export_display:='export DISPLAY=:0;'
|
|||
end
|
|||
else
|
|||
begin
|
|||
g_soy_canon:=false;
|
|||
g_export_display:=''
|
|||
end;
|
|||
end;
|
|||
procedure Ejecutar(comando:string);
|
|||
var
|
|||
P: TProcess;
|
|||
mproceso:string;
|
|||
begin
|
|||
P := TProcess.Create(nil);
|
|||
try
|
|||
mproceso:='sh -c '+QuotedStr(comando + ' 2>&1');
|
|||
P.CommandLine := mproceso;
|
|||
P.Execute;
|
|||
finally
|
|||
P.Free;
|
|||
end;
|
|||
end;
|
|||
procedure Ejecutar1 (comando:string);
|
|||
begin;
|
|||
unix.fpSystem(comando);
|
|||
end;
|
|||
function HallarDatos(Cmd:string):ansistring;
|
|||
const
|
|||
READ_BYTES = 2048;
|
|||
var
|
|||
S: TStringList;
|
|||
M: TMemoryStream;
|
|||
P: TProcess;
|
|||
n: LongInt;
|
|||
BytesRead: LongInt;
|
|||
ssalida:ansistring;
|
|||
mproceso:string;
|
|||
begin
|
|||
mproceso:='sh -c '+QuotedStr(Cmd + ' 2>&1');
|
|||
S := TStringList.Create;
|
|||
M := TMemoryStream.Create;
|
|||
BytesRead := 0;
|
|||
P := TProcess.Create(nil);
|
|||
try
|
|||
try
|
|||
P.CommandLine := mproceso;
|
|||
P.Options := [poUsePipes];
|
|||
P.Execute;
|
|||
while P.Running do
|
|||
begin
|
|||
M.SetSize(BytesRead + READ_BYTES);
|
|||
n := P.Output.Read((M.Memory + BytesRead)^, READ_BYTES);
|
|||
if n > 0 then
|
|||
begin
|
|||
Inc(BytesRead, n);
|
|||
end
|
|||
else
|
|||
begin
|
|||
Sleep(100);
|
|||
end;
|
|||
end;
|
|||
repeat
|
|||
M.SetSize(BytesRead + READ_BYTES);
|
|||
n := P.Output.Read((M.Memory + BytesRead)^, READ_BYTES);
|
|||
if n > 0 then
|
|||
begin
|
|||
Inc(BytesRead, n);
|
|||
Write('.');
|
|||
end;
|
|||
until n <= 0;
|
|||
M.SetSize(BytesRead);
|
|||
S.LoadFromStream(M);
|
|||
ssalida:=trim(S.text);
|
|||
except
|
|||
ssalida:='Error al ejecutar proceso. Comando o parámetros no validos';
|
|||
end;
|
|||
finally
|
|||
S.Free;
|
|||
P.Free;
|
|||
M.Free;
|
|||
result:=ssalida;
|
|||
end;
|
|||
end;
|
|||
procedure MatarAplicacion(aplica:String);
|
|||
const
|
|||
ORDEN_MATAR:STRING='killall %s & 2>>/dev/null';
|
|||
var
|
|||
orden:string;
|
|||
begin
|
|||
orden:=format(ORDEN_MATAR,[aplica]);
|
|||
Ejecutar(orden);
|
|||
end;
|
|||
function CrearArchivoMensaje(TipoMensaje,AsuntoMensaje,ContenidoMensaje:string; ArchivoMensaje:String='0'):boolean;
|
|||
const
|
|||
NOMBRE_ALUMNO:string='aulalinex-alumno';
|
|||
var
|
|||
Mifichero:TMemIniFile;
|
|||
begin
|
|||
result:=true;
|
|||
if fileexists(g_dirmensaje) then DeleteFile(g_dirmensaje);
|
|||
try
|
|||
Mifichero := TMemIniFile.Create(g_dirmensaje);
|
|||
with Mifichero do
|
|||
begin
|
|||
WriteString('MENSAJE','mensaje',HttpDecode(ContenidoMensaje));
|
|||
WriteString('MENSAJE','tipo', TipoMensaje);
|
|||
WriteString('MENSAJE','titulo',HttpDecode(AsuntoMensaje));
|
|||
WriteString('MENSAJE','tiempo','30');
|
|||
WriteString('MENSAJE','usuario',NOMBRE_ALUMNO);
|
|||
WriteString('MENSAJE','archivo',ArchivoMensaje);
|
|||
UpdateFile;
|
|||
Free;
|
|||
end;
|
|||
sleep(2000);
|
|||
Ejecutar('chmod 777 ' + g_dirmensaje);
|
|||
except
|
|||
begin
|
|||
result:=false;
|
|||
writeLn('Error al crear archivo');
|
|||
end;
|
|||
end;
|
|||
end;
|
|||
end.
|