Dicas de Delphi sobre rede

Veja nestas dicas de Delphi sobre rede: Desconectar uma unidade de rede mapeada ; Retorna o IP da Máquina ; Retorna o Nome do Usuário logado na rede

Dicas de Delphi sobre rede

Desconectar uma unidade de rede mapeada

function DesconectaRede(Unidade:Pchar;ForcaCancel:boolean):String;
begin
   WNetCancelConnection2(Unidade,0,ForcaCancel);
   Case GetLastError() of
      1205: Result := 'Não foi possível abrir o perfil';
      1206: Result := 'Perfil do usuário não encontrado ou inválido';
      1208: Result := 'Ocorreu um Erro específico na rede';
      2138: Result := 'Rede não encontrada ou fora do ar';
      2250: Result := 'Mapeamento inválido ou não encontrado';
      2401: Result := 'Existem muitos arquivos abertos';
   else Result := 'Unidade disconectada com sucesso';
   end;
end;

Retorna o IP da Máquina

function GetIP:string;//--> Declare a Winsock na clausula uses da unit
var
   WSAData: TWSAData;
   HostEnt: PHostEnt;
   Name:string;
begin
   WSAStartup(2, WSAData);
   SetLength(Name, 255);
   Gethostname(PChar(Name), 255);
   SetLength(Name, StrLen(PChar(Name)));
   HostEnt := gethostbyname(PChar(Name));
   with HostEnt^ do
      Result:=Format('%d.%d.%d.%d',[Byte(h_addr^[0]),
      Byte(h_addr^[1]),Byte(h_addr^[2]),Byte(h_addr^[3])]);
      WSACleanup;
end;

 Retorna o Nome do Usuário logado na rede

function LogUser : String; //Declare Registry na clausula uses da unit
   var Registro: TRegistry;
begin
   Registro := TRegistry.Create;
   Registro.RootKey := HKEY_LOCAL_MACHINE;
   if Registro.OpenKey('Network\Logon', false) then
      result := Registro.ReadString('username');
      Registro.Free;
end;

 

Artigos relacionados