Con questo codice posso ottenere le informazioni che mi servono dal PC in uso:
Adesso vorrei interrogare il PC remoto per ottenere le informazioni che mi servono. Come componente sto usando server: TIdTCPServer, cliente: TIdTCPClient.
Codice:
procedure TForm1.FormCreate(Sender: TObject);
var
A, C, D, E, Speed: Double;
myStringList: TStringList;
b: array[0..512] of Char;
Memory: tMemoryStatus;
i : Integer;
begin
Speed := GetCPUSpeed;
myStringList:=TStringList.Create;
TIdStack.IncUsage;
GetTempPath(511,b);
memory.dwLength := sizeof(memory);
GlobalMemoryStatus(memory);
i := Languages.IndexOf(SysLocale.DefaultLCID);
A := memory.dwTotalPhys;
C := memory.dwAvailPhys;
D := (A/100000000);
E := (C/100000000);
try
myStringList.Add('IP: ' + GStack.LocalAddress);
finally
TIdStack.DecUsage;
end;
myStringList.Add('PC: '+SysComputerName+' Utente: '+SysUserName);
myStringList.Add('SO: '+(InfoSO)+' '+Languages.Name[i]);
myStringList.Add('CPU: '+(Tipo_cpu) + ' ' + FormatFloat('#0.', Speed)+' Hz');
If waveOutGetNumDevs > 0 then
myStringList.Add('Scheda Audio: Presente')
else myStringList.Add('Scheda Audio: Assente');
myStringList.Add(b);
myStringList.Add('Memoria totale: '+FormatFloat('#0.', D)+' Gb'+' Memoria libera: '+FormatFloat('#0.', E)+' Gb');
Memo1.Lines.Assign(myStringList);
myStringList.Free;
end;