Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function GetOSUserName: 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)]);
    Result := LowerCase(Result);
  finally
    FreeMem(pUser);
    CloseHandle(hToken);
  end;
end;

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 14:53 03-07-2006 | Исправлено: vshersh, 14:57 03-07-2006
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru