Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Получить имя текущего пользователя в Win


Автор: BEST13 4.6.2010, 21:35
Подскажите,как получит имя текушего пользователя (активное учётной записи)?
Желательно с примером, а то я  в http://msdn.microsoft.com/ru-ru/library/sfs49sw0(VS.90).aspx был только, там не примеров для делфи...   

Автор: kami 4.6.2010, 22:04
Код

uses
  SysUtils;

begin
  ShowMessage(GetEnvironmentVariable('username'));
end;

Ку?

Добавлено @ 22:08
Вариант с узнаванием по текущему потоку:
Код

var
  i:cardinal;
  s:string;

begin
  i:=MAX_PATH;
  SetLength(s, i);
  if GetUserName(@s[1], i) then
    begin
      SetLength(s, i-1);
      ShowMessage(s);
    end;


способов получить имя юзера - вагон и маленькая тележка.

Автор: DarkProg 4.6.2010, 22:19
Цитата(BEST13 @  4.6.2010,  21:35 Найти цитируемый пост)
а то я  в MSDN был только

В MSDN если хорошо поковыряетесь то можете найти пример с WinAPI, который будет работать как на С так и на Delphi, но это нужно хорошо ковыряться, посему мой вам совет скачайте DRKB и DelphiWorld(это как бонус, там просто есть статьи которые будет интересно и полезно почитать)

Автор: BEST13 5.6.2010, 01:09
Всем спасибо, буду пробовать!

Автор: Данкинг 5.6.2010, 03:06
Из ДРКБ, суть та же, что в примере kami:
Код

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 := '';

end;



Автор: BEST13 7.6.2010, 18:44
Данкинг,  спасибо огромное.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)