GARANTIR DESCONTO

Fórum Pegar informações do micro #294233

01/09/2005

0

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!!!!


Luiz_aquino

Luiz_aquino

Responder

Posts

01/09/2005

Adriano Santos

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?


Responder

Gostei + 0

02/09/2005

Luiz_aquino

[quote:f4f2554e6a=´Adriano Santos´]
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?


Responder

Gostei + 0

02/09/2005

Adriano Santos

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;



Responder

Gostei + 0

02/09/2005

Adriano Santos

Esqueci, fiz um exemplo:
Pega no meu servidor.

[url=http://www.doiscliques.com/pub/infomicro.zip]Exemplo[/url]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar