segunda-feira, 23 de maio de 2011

Nome do Computador e Usuário em Delphi




Nesse tutorial vou explicar como conseguir o nome do computador e o usuário.




Para esse tutorial eu recomendo pesquisar depois sobre o uso de API (Interface de Programação de Aplicações)do Windows: http://pt.wikipedia.org/wiki/API.






Com as APIs você não ficará reinventando a roda.




Vamos usar duas funções da API:




GETCOMPUTERNAME e GETUSERNAME.




Vamos criar duas funções para facilitar o trabalho das APIs.




Nome do Computador









function NomedoComputador: String;

var

buffer: Array[0..255] of char;

size: DWord;

begin

size := 256;

if GetComputerName (buffer,size) then

Result := Buffer

else

Result := '';

end;







Nome do Usuário









function NomedoUsuario: String;

var

UserName: String;

UserNameLen: DWord;

begin

UserNameLen := 255;

SetLength (UserName, UserNameLen);

if GetUserName (PChar(UserName), UserNameLen) Then

Result := Copy (UserName,1,UserNameLen - 1)

else

Result := 'Desconhecido';

end;







No programa completo:









unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

LblComputador: TLabel;

LblUsuario: TLabel;

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

function NomedoComputador: String;

var

buffer: Array[0..255] of char;

size: DWord;

begin

size := 256;

if GetComputerName (buffer,size) then

Result := Buffer

else

Result := '';

end;

function NomedoUsuario: String;

var

UserName: String;

UserNameLen: DWord;

begin

UserNameLen := 255;

SetLength (UserName, UserNameLen);

if GetUserName (PChar(UserName), UserNameLen) Then

Result := Copy (UserName,1,UserNameLen - 1)

else

Result := 'Desconhecido';

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

LblComputador.Caption := NomedoComputador;

LblUsuario.Caption := NomedoUsuario;

end;

end.




Nenhum comentário:

Postar um comentário