powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать имя Виндузового пользователя
7 сообщений из 7, страница 1 из 1
Как узнать имя Виндузового пользователя
    #32122323
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. нужно в итоге получить
MyDomen/UserName ?
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122343
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/17320
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122346
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122470
Фотография aLexx Subb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так комп определяется

function GetComputerName: string;
var Ch :PChar;
{$IFDEF VER100} { Borland Delphi 3.0 }
Size :Integer;
{$ELSE}
Size :Cardinal;
{$ENDIF}
begin
Size := MAX_COMPUTERNAME_LENGTH + 1;
Ch := StrAlloc(Size);
Windows.GetComputerName (Ch, Size);
Result := StrPas (Ch);
StrDispose (Ch)
end;

Есть вариант еще через ADSI. Все можно определить.

А так можно юзера зарубить
function GetUserName:string;
{Определение имени пользователя}
var
Buffer: array[0..MAX_PATH] of Char;
sz:DWord;
begin
sz:=MAX_PATH-1;
if windows.GetUserName(Buffer,sz)
then begin
if sz>0 then dec(sz);
SetString(Result,Buffer,sz);
end else begin
Result:='Error '+inttostr(GetLastError);
end;
end;

Пользуй :)
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122536
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
function CurrentAccount : String;
 type
    TOKEN_USER = record
      User : TSidAndAttributes;
    end;
     PTOKEN_USER = ^TOKEN_USER;

  var szUser,
      szDomain : array [ 0 .. 255 ] of Char;
      cbSize,
      cbUser,
      cbDomain : DWORD;
      hToken   : THandle;
      pUser    : PTOKEN_USER;
      sid_use  : SID_NAME_USE;
begin
  Result := '';
  cbUser :=  256 ;
  cbDomain :=  256 ;
  ZeroMemory(@szUser, cbUser);
  ZeroMemory(@szDomain, cbDomain);

  if not OpenThreadToken(GetCurrentThread, TOKEN_QUERY, true, hToken) then
  begin
    if GetLastError <> ERROR_NO_TOKEN then Exit;
    if not OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, hToken) then exit;
  end;

  if not GetTokenInformation(hToken, TokenUser, nil,  0 , cbSize) then
    if GetLastError <> ERROR_INSUFFICIENT_BUFFER then
    begin
      CloseHandle(hToken);
      Exit;
    end;

    GetMem(pUser, cbSize);
  try
    if not GetTokenInformation(hToken, TokenUser, pUser, cbSize, cbSize) then Raise Exception.Create('');
    LookupAccountSid(nil, pUser.User.Sid, @szUser, cbUser, @szDomain, cbDomain, sid_use);
    Result := Format('%s\%s', [StrPas(szDomain), StrPas(szUser)]);
  finally
    FreeMem(pUser);
    CloseHandle(hToken);
  end;
  
end;
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122552
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Ну и написали...
А что, в реестре слабо глянуть???
...
Рейтинг: 0 / 0
Как узнать имя Виндузового пользователя
    #32122598
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, конечно и через реестр.
Но, ИМХО, лучше все-таки данную инфу получить через API
Ещё раз спасибо всем.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать имя Виндузового пользователя
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]