powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать свойства пользователя?
8 сообщений из 8, страница 1 из 1
Как узнать свойства пользователя?
    #32270195
BaseAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно из проги определить является ли пользователь Администратором на этом компе (речь естественно о 2000). По идее эти данные должны где-то лежать в реестре и/или должна быть API-шная функция возвращающая эту информацию. Вопрос где и какая? Если кто знает - помогите...
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270209
Фотография Jozo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270218
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
function IsAdmin: Boolean;
var
 hAccessToken: THandle;
 ptgGroups: PTokenGroups;
 dwInfoBufferSize: DWORD;
 psidAdministrators: PSID;
 x: Integer;
 bSuccess: BOOL;
begin
 Result := False;
 bSuccess := OpenThreadToken(GetCurrentThread, TOKEN_QUERY, True,
   hAccessToken);
 if not bSuccess then
 begin
   if GetLastError = ERROR_NO_TOKEN then
   bSuccess := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY,
                                 hAccessToken);
 end;
  if bSuccess then
  begin
   GetMem(ptgGroups, 1024);
    bSuccess := GetTokenInformation(hAccessToken, TokenGroups,
                                    ptgGroups, 1024, dwInfoBufferSize);
   CloseHandle(hAccessToken);
   if bSuccess then
    begin
     AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2,
       SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS,
       0, 0, 0, 0, 0, 0, psidAdministrators);
     {$R-}
      for x := 0 to ptgGroups.GroupCount - 1 do
       if EqualSid(psidAdministrators, ptgGroups.Groups[x].Sid) then
        begin
         Result := True;
          Break;
       end;
     {$R+}
     FreeSid(psidAdministrators);
    end;
   FreeMem(ptgGroups);
  end;
end;
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270228
BaseAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Если можно, то пару строк описания....
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270238
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
описание функций что ли?
дык MSDN читай :)
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270324
BaseAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не компелится. Не знает первых 3-х констант. Первую в MSDN отрыл, а остальных не найду. Может что при юзить надо?
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270347
srf2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон :)

const
SECURITY_NT_AUTHORITY: SID_IDENTIFIER_AUTHORITY = (Value: (0,0,0,0,0,5));
SECURITY_BUILTIN_DOMAIN_RID: DWORD = $00000020;
DOMAIN_ALIAS_RID_ADMINS: DWORD = $00000220;
DOMAIN_ALIAS_RID_USERS : DWORD = $00000221;
DOMAIN_ALIAS_RID_GUESTS: DWORD = $00000222;
DOMAIN_ALIAS_RID_POWER_: DWORD = $00000223;
...
Рейтинг: 0 / 0
Как узнать свойства пользователя?
    #32270355
BaseAdmin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как узнать свойства пользователя?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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