Olá galera, vamos a este artigo que tem como objetivo mostrar como podemos descobrir o nome do seu computador e, além disso, mudar o nome do mesmo.

Vamos iniciar colocando em nosso formulário 4 componentes, sendo 2 TLabeledEdit(LblEdtNomeAtual, LblEdtNovoNome), e 2 TButton(BtnNomeAtual, BtnNovoNome), mudamos os nomes para facilitar o entendimento.

Ficando da seguinte maneira :


Agora vamos precisar declarar duas function na seção private da classe do nosso formulário.
Listagem 1: Declaração das functions

type
  TForm1 = class(TForm)
    BtnNovoNome: TButton;
    LblEdtNovoNome: TLabeledEdit;
    LblEdtNomeAtual: TLabeledEdit;
    BtnNomeAtual: TButton;
  private
    function LoadComputerName: string;
    function PostComputerName(pNewName: string): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;
Neste momento vamos implementar as mesmas usando o CTRL + SHIF + C, em cima de uma das declarações.

Agora vamos a implementação das duas functions

Listagem 2: Implementação da function LoadComputerName

function TForm1.LoadComputerName: string;
var
  buffer: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
  Size: Cardinal;
begin
  Size := MAX_COMPUTERNAME_LENGTH + 1;
  Windows.GetComputerName(@buffer, Size);
  Result := StrPas(buffer);
end; 
Listagem 3: Implementação da function PostComputerName

function TForm1.PostComputerName(pNewName: string): Boolean;
var
  ComputerName: array[0..MAX_COMPUTERNAME_LENGTH + 1] of Char;
  Size: Cardinal;
begin
  StrPCopy(ComputerName, pNewName);
  Result := Windows.SetComputerName(ComputerName);
end; 
Neste momento vamos implementar o evento onClick do BtnNomeAtual.
Listagem 4: Implementação do BtnNomeAtual

procedure TForm1.BtnNomeAtualClick(Sender: TObject);
begin
  LblEdtNomeAtual.Text := LoadComputerName;
end;
Neste momento vamos implementar o evento onClick do BtnNovoNome.
Listagem 5: Implementação do BtnNovoNome

procedure TForm1.BtnNovoNomeClick(Sender: TObject);
begin
  PostComputerName(LblEdtNovoNome.Text);
  ShowMessage('Reinicie o computador para ver o resultado');
end;

Observe que ao passar o nome do computador coloquei um ShowMessage, pois é exatamente isso que temos que fazer pra ver o resultado, reiniciar o computador.

Obs : Funciona no Windows XP e Windows Vista, no Windows 7 houve mudanças no registro por isso a função de PostName, não irá funcionar.

Fico por aqui e até a próxima.

Um abraço
Wesley Y
www.lithic.com.br