Fórum Sobre nome da máquina... #289334
25/07/2005
0
Bruno Belchior
Curtir tópico
+ 0Posts
25/07/2005
Kapak
Gostei + 0
25/07/2005
Janbaceiredo
para você saber o nome da maquina conheço duas formas:
[b:cec907def0]1º Usando a Unit Winsock[/b:cec907def0]
[b:cec907def0][color=blue:cec907def0]1º Passo[/color:cec907def0][/b:cec907def0]
Declare a unit Winsock na clausula [b:cec907def0]Uses[/b:cec907def0]
Exemplo
[list:cec907def0][i:cec907def0][color=red:cec907def0][b:cec907def0]uses[/b:cec907def0][/color:cec907def0]
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, [color=red:cec907def0][b:cec907def0]Winsock[/b:cec907def0][/color:cec907def0], ShellApi;[/i:cec907def0][/list:u:cec907def0]
[b:cec907def0][color=blue:cec907def0]2º Passo[/color:cec907def0][/b:cec907def0]
Insira o código abaixo no [b:cec907def0]Evento OnCreate:[/b:cec907def0]
[list:cec907def0][i:cec907def0]procedure TForm1.FormCreate(Sender: TObject);
var
wVersionRequested: WORD;
wsaData: TWSAData;
begin
wVersionRequested:= MAKEWORD(1, 1);
WSAStartup(wVersionRequested, wsaData);
end;[/i:cec907def0][/list:u:cec907def0]
E no [b:cec907def0]Evento OnDestroy[/b:cec907def0] insira o seguinte código:
[list:cec907def0][i:cec907def0]procedure TForm1.FormDestroy(Sender: TObject);
begin
WSACleanup;
end;[/i:cec907def0][/list:u:cec907def0]
[b:cec907def0][color=blue:cec907def0]3º Passo[/color:cec907def0][/b:cec907def0]
Insira um componente Button no formulario e em seu [b:cec907def0]Evento Onclick[/b:cec907def0] digite o seguinte código:
[list:cec907def0][i:cec907def0]procedure TForm1.Button1Click(Sender: TObject);
var
Host : PHostEnt;
S : array[0..128] of char;
Num_Ip : pchar;
Msg: String;
begin
// Pega o nome da maquina
GetHostName(@s, 128);
Host:= GetHostByName(@s);
// Pega o número do IP da maquina
Num_Ip:= iNet_ntoa(PInAddr(Host^.h_addr_list^)^);
// Junta o nome da maquina + o número Ip
Msg:= ´Nome do Host: ´ + Host^.h_Name + #13 + ´Número IP: ´ + Num_Ip;
ShowMessage(Msg);
end;[/i:cec907def0][/list:u:cec907def0]
Agora é só executar a aplicação e verificar o resultado.
Agora a segunda forma é referente ao comando [b:cec907def0]GetComputerName[/b:cec907def0], mencionado pelo membro [b:cec907def0]kapak.[/b:cec907def0]
[b:cec907def0]2º Usando a Unit ShellApi[/b:cec907def0]
[b:cec907def0][color=blue:cec907def0]1º Passo[/color:cec907def0][/b:cec907def0]
Declare a unit ShellApi na clausula [b:cec907def0]Uses[/b:cec907def0]
Exemplo
[list:cec907def0][i:cec907def0][color=red:cec907def0][b:cec907def0]uses[/b:cec907def0][/color:cec907def0]
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, Winsock, [color=red:cec907def0][b:cec907def0]ShellApi;[/b:cec907def0][/color:cec907def0][/i:cec907def0][/list:u:cec907def0]
[b:cec907def0][color=blue:cec907def0]2º Passo[/color:cec907def0][/b:cec907def0]
Insira um componente Button no formulario e em seu [b:cec907def0]Evento Onclick[/b:cec907def0] digite o seguinte código:
[list:cec907def0][i:cec907def0]procedure TForm1.Button1Click(Sender: TObject);
var
pcName : pchar; // Recebe o nome do Host
dwSize : dword; // Buffer que aloca o nome do Host
begin
try
dwSize:= MAX_COMPUTERNAME_LENGTH + 1;
pcName:= strAlloc( dwSize );
if not getComputerName(pcName, dwSize) then
application.MessageBox(
pChar( ´Motivo: A chamada na Api do Windows Falhou´ + #1010 +
´Windows reporta o código de erro ´ +
intToStr( getLastError ) ),
´Não pode pegar o nome do computador´, ID_OK )
else
application.MessageBox(
pChar( O nome deste computador é ´´ + pcName +
´´, e ele contém ´ + intToStr( dwSize ) +
´ caracter(s).´ ), ´FYI´, ID_OK );
finally
strDispose( pcName );
end;
end;[/i:cec907def0][/list:u:cec907def0]
Agora é só executar a aplicação e verificar o resultado.
Todos os exemplos foram feitos em Delphi 7.
Espero que tenha ajudado,
Até mais,
Antônio.
Gostei + 0
16/11/2005
Conradorag
adicione um compontente TTcpClient que esta na paleta Internet e faça assim:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.caption := TcpClient1.LocalDomainName;
LAbel2.caption := TcpClient1.LocalHostAddr;
LAbel3.caption := TcpClient1.LocalHostName;
end;
espero que ajude
Gostei + 0
17/11/2005
Michael
Veja [url=http://delphi.about.com/cs/adptips2002/a/bltip0102_3.htm]este link[/url] do site [url=http://delphi.about.com]About Delphi[/url].
[]´s
Gostei + 0
17/11/2005
Martins
Blz [b:514961ba25]Michael[/b:514961ba25], bem melhor do q utilizar o registro do Windows.
function ComputerName: string; var reg : tregistry; begin reg:=tregistry.create; reg.RootKey:=HKEY_LOCAL_MACHINE; reg.openkey(´\SYSTEM\ControlSet001\Control\ComputerName\ComputerName´,false); result:=reg.readstring(´ComputerName´); end;
Não esquecendo de acrescentar o Registry no Uses.
Valew!!!
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)