GARANTIR DESCONTO

Fórum Identificar usuário na rede #185361

30/09/2003

0

Oi pessoal,

gostaria de saber como fazer para conseguir o nome do usuário de uma máquina na rede, através do nome da máquina. Teria como fazer isto através do delphi???

Agradeço antecipadamente.


Wsantos

Wsantos

Responder

Posts

30/09/2003

Marconi

Veja a função abaixo

No seu programa digite

Usuario:=LogUser;
ShowMessage(usuario);


function LogUser : String;
{Requer a unit Registry declarada na clausula Uses da Unit}
var
Registro : TRegistry; r:string;
begin
Registro := TRegistry.Create;
// Registro.RootKey := HKEY_LOCAL_MACHINE;
Registro.RootKey := HKEY_CURRENT_USER;
//if Registro.OpenKey(´Network\Logon´, false) then begin
if Registro.OpenKey(´Network\Recent\././CINECATH_SRV./SYS´, false) then begin
r := Registro.ReadString(´username´);
r := copy(r,5,length(r)-5);
result := Copy(r,1,AnsiPos(´.´,r)-1);
end;
if (result=emptystr) or (result=null) then begin
if Registro.OpenKey(´Volatile Environment´,false)
then result := Registro.ReadString(´NWUSERNAME´);
end;
if (result=emptystr) or (result=null) then begin
if Registro.OpenKey(´Volatile Environment´,false) then begin
r := Registro.ReadString(´LOGONSERVER´);
result := Copy(r,3,length(r)-2);
end;
end;
Registro.Free;
end;


Marconi


Responder

Gostei + 0

07/10/2003

Wsantos

Tentei usar o código acima, mas não funcionou.
Saberiam outra maneira de fazer isso???


Responder

Gostei + 0

07/10/2003

Marconi

Troque as linhas

// Registro.RootKey := HKEY_LOCAL_MACHINE;
Registro.RootKey := HKEY_CURRENT_USER;
//if Registro.OpenKey(´Network\Logon´, false) then begin
if Registro.OpenKey(´Network\Recent\././CINECATH_SRV./SYS´, false) then begin

por

Registro.RootKey := HKEY_LOCAL_MACHINE;
if Registro.OpenKey(´Network\Logon´, false) then begin

É que no código anterior eu me referia a um servidor de rede.

Agora vai funcionar.

Marconi


Responder

Gostei + 0

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

Aceitar