Pegar informações do micro
Gostaria de saber se tem como pegar informações do micro tais como:
Tamanho do HD (Total, Usado e Livre)
Memoria RAM
Velocidade do processador
Nome do micro na rede
Dominio
Número de série do micro
se tiver como preciso de ajuda...agradeço desde já!
valeu galera!!!!
Tamanho do HD (Total, Usado e Livre)
Memoria RAM
Velocidade do processador
Nome do micro na rede
Dominio
Número de série do micro
se tiver como preciso de ajuda...agradeço desde já!
valeu galera!!!!
Luiz_aquino
Curtidas 0
Respostas
Adriano Santos
01/09/2005
Gostaria de saber se tem como pegar informações do micro tais como:
Tamanho do HD (Total, Usado e Livre)
Memoria RAM
Velocidade do processador
Nome do micro na rede
Dominio
Número de série do micro
se tiver como preciso de ajuda...agradeço desde já!
valeu galera!!!!
Cara, são uma série de funções...vou agrupar todas que tenho aqui e te passo ok?
GOSTEI 0
Luiz_aquino
01/09/2005
[quote:f4f2554e6a=´Adriano Santos´]
Cara, são uma série de funções...vou agrupar todas que tenho aqui e te passo ok?[/quote:f4f2554e6a]
valeu pela força!!! vc manda por email mesmo?
Gostaria de saber se tem como pegar informações do micro tais como:
Tamanho do HD (Total, Usado e Livre)
Memoria RAM
Velocidade do processador
Nome do micro na rede
Dominio
Número de série do micro
se tiver como preciso de ajuda...agradeço desde já!
valeu galera!!!!
Cara, são uma série de funções...vou agrupar todas que tenho aqui e te passo ok?[/quote:f4f2554e6a]
valeu pela força!!! vc manda por email mesmo?
GOSTEI 0
Adriano Santos
01/09/2005
Gostaria de saber se tem como pegar informações do micro tais como:
Tamanho do HD (Total, Usado e Livre)
Memoria RAM
Velocidade do processador
Nome do micro na rede
Dominio
Numero serial do micro
[b:f3e15b0f0a]Dominio[/b:f3e15b0f0a], coloquei uma função, mas aqui não deu certo, dá uma olhada talvez consiga mexer.
[b:f3e15b0f0a]Número de série do micro[/b:f3e15b0f0a], não tenho isso.
Declare a unit WINSOCK.
........
uses
WinSock;
------
function TForm1.GetCPUSpeed: Double;
const
DelayTime = 500;
var
TimerHi, TimerLo: DWORD;
PriorityClass, Priority: Integer;
begin
try
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
Sleep(10);
asm
dw 310Fh // rdtsc
mov TimerLo, eax
mov TimerHi, edx
end;
Sleep(DelayTime);
asm
dw 310Fh // rdtsc
sub eax, TimerLo
sbb edx, TimerHi
mov TimerLo, eax
mov TimerHi, edx
end;
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Result := TimerLo / (1000.0 * DelayTime);
except
end;
end;
function TForm1.Retorna_IP: string;
var
p: PHostEnt;
s: array[0..128] of char;
p2: pchar;
wVersionRequested: WORD;
wsaData: TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
GetHostName(@s, 128);
p := GetHostByName(@s);
p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
Result := p2;
WSACleanup;
end;
function TForm1.Retorna_Nome: string;
var
p: PHostEnt;
s: array[0..128] of char;
p2: pchar;
wVersionRequested: WORD;
wsaData: TWSAData;
begin
wVersionRequested := MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
GetHostName(@s, 128);
p := GetHostByName(@s);
Result := p^.h_Name;
end;
function TForm1.Retorna_Dominio: string;
var
hProcesso, hTokenAcesso: THandle;
Buffer: PChar;
Usuario: array[0..31] of char;
Dominio: array[0..31] of char;
TamanhoBufferInfo: Cardinal;
TamanhoUsuario: Cardinal;
TamanhoDominio: Cardinal;
snu: SID_NAME_USE;
begin
TamanhoBufferInfo := 1000;
TamanhoUsuario := sizeof(Usuario);
TamanhoDominio := sizeof(Dominio);
hProcesso := GetCurrentProcess;
if OpenProcessToken(hProcesso, TOKEN_READ, hTokenAcesso) then
try
GetMem(Buffer, TamanhoBufferInfo);
try
if GetTokenInformation(hTokenAcesso, TokenUser, Buffer, TamanhoBufferInfo,
TamanhoBufferInfo) then
LookupAccountSid(nil, PSIDAndAttributes(Buffer)^.sid, Usuario,
TamanhoUsuario, Dominio, TamanhoDominio, snu)
else
RaiseLastOSError;
finally
FreeMem(Buffer);
end;
result := Dominio;
finally
CloseHandle(hTokenAcesso);
end
end;
function TForm1.Retorna_Usuario: string;
var
cUser: array[0..144] of Char;
BufferSize: DWord;
cUserName: string;
begin
BufferSize := SizeOf(cUser);
GetUserName(cUser, BufferSize);
cUserName := Trim(StrPas(cUser));
Result := cUserName;
end;
function TForm1.Retorna_Memoria: string;
var
MemoryStatus: TMemoryStatus;
begin
MemoryStatus.dwLength := sizeof(MemoryStatus);
GlobalMemoryStatus(MemoryStatus);
Result := ´Total de memória física : ´ + FormatFloat(´#0,000´,
MemoryStatus.dwTotalPhys);
(*
{typedef struct _MEMORYSTATUS}
DWORD dwLength; // sizeof(MEMORYSTATUS)
DWORD dwMemoryLoad; // percentual de memória em uso
DWORD dwTotalPhys; // bytes de memória física
DWORD dwAvailPhys; // bytes livres de memória física
DWORD dwTotalPageFile; // bytes de paginação de arquivo
DWORD dwAvailPageFile; // bytes livres de paginação de arquivo
DWORD dwTotalVirtual; // bytes em uso de espaço de endereço
DWORD dwAvailVirtual; // bytes livres}
*)
end;
procedure TForm1.FormCreate(Sender: TObject);
var
cpuspeed: string;
begin
cpuspeed := Format(´¬f MHz´, [GetCPUSpeed]);
Label1.Caption := ´Nome máquina: ´ + Retorna_Nome;
Label2.Caption := ´IP: ´ + Retorna_IP;
Label3.Caption := ´Domínio: ´ + Retorna_Dominio;
Label4.Caption := ´Velocidade do CPU: ´ + cpuspeed +
´ (valor aproximado)´;
Label5.Caption := ´Nome do usuário na rede: ´ + Retorna_Usuario;
Label6.Caption := ´Memória RAM: ´ + Retorna_Memoria;
Label8.Caption := ´Tamanho do Disco: ´ + FormatFloat(´#0,000´,DiskSize(0) div 1024);
Label7.Caption := ´Espaço Livre: ´ + FormatFloat(´0,000´,DiskFree(0) div 1024);
end;
GOSTEI 0
Adriano Santos
01/09/2005
Esqueci, fiz um exemplo:
Pega no meu servidor.
[url=http://www.doiscliques.com/pub/infomicro.zip]Exemplo[/url]
Pega no meu servidor.
[url=http://www.doiscliques.com/pub/infomicro.zip]Exemplo[/url]
GOSTEI 0