Buenas tardes Delphianos
.
Me han solicitado en la empresa donde estoy que haga una opción donde se puedan observar los usuarios que están activos en la aplicación con los siguientes datos:
Nompre de la PC.
IP Local.
UsuarioID de la red.
Hora Entrada.
Hora Salida
y todo esto en tiempo real.
He logrado hacer las 3 primeras cosas que son lo mas complicado con este código:
Código Delphi
[-]
uses WinSock,
ComObj;
function GetPCName: string;
var
Buffer: array[0..MAX_COMPUTERNAME_LENGTH] of Char;
Size: Cardinal;
begin
FillChar(Buffer,Sizeof(Buffer),0);
Size:= Sizeof(Buffer);
if GetComputerName(Buffer,Size) then
Result:= String(PChar(@Buffer))
else
Result:= '';
end;
function LocalIP : string;
type
TaPInAddr = array [0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe : PHostEnt;
pptr : PaPInAddr;
Buffer : array [0..63] of char;
I : Integer;
GInitData : TWSADATA;
begin
WSAStartup($101, GInitData);
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe := GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^[i] <> nil do
begin
result:=StrPas(inet_ntoa(pptr^[i]^));
Inc(I);
end;
WSACleanup;
end;
procedure TForm1.Button6Click(Sender: TObject);
var Buffer: array [0..31] of Char;
begin
GetEnvironmentVariable('USERNAME', @Buffer, SizeOf(Buffer));
Edit1.Text:= GetPCName;
edit2.text := LocalIP;
edit3.Text := Buffer
end;
Hasta aquí estoy bien, sin embargo no se como es la temática de este monitoreo.
Si alguien tiene experiencia en esto favor de darme una manito
.
Gracias de antemano.
Saludos.