Você está aqui: Delphi ::: Dicas & Truques ::: Sistema |
Obtendo o nome de usuário do computadorQuantidade de visualizações: 12723 vezes |
Em algumas situações nós precisamos obter o nome do usuário do sistema, ou seja, o usuário atualmente logado no Windows. Isso pode ser feito por meio do uso da função GetUserName() da API do Windows. Veja sua assinatura:BOOL GetUserName( LPTSTR lpBuffer, LPDWORD lpnSize ); Veja que esta função recebe como argumentos um buffer de caracteres e seu tamanho, ou seja, a quantidade de caracteres contidos no buffer e que serão usados para armazenar o nome do usuário. O tamanho do buffer deve ser superior ou igual a UNLEN + 1. Se a função GetUserName() retornar verdadeiro, o parâmetro lpnSize guardará a quantidade de caracteres contidos no valor resultante. Veja o exemplo: function GetUserFromWindows: string; var buffer: array[0..255] of char; size: dword; begin size := 256; if GetUserName(buffer, size) then Result := buffer else Result := 'Desconhecido'; end; procedure TForm1.Button1Click(Sender: TObject); begin // vamos obter o nome do usuário do Windows ShowMessage(GetUserFromWindows()); end; Se o nome do usuário não puder ser obtido, uma string com o valor "Desconhecido" será retornada. Veja outra variação da função personalizada GetUserFromWindows(): function GetUserFromWindows: 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; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |