Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

Как определить имеет ли Юзер права администратора?   Найти похожие ветки 

 
Serg Guk   (2004-03-18 16:16) [0]

Привет, всем.  Ну собственно subj....
Заранее спасибо  :))


 
serge35   (2004-03-18 17:12) [1]

Администратора чего?


 
Алхимик ©   (2004-03-18 17:21) [2]

try
  <попытка сделать административное действие>
  UserIsAdmin := true;
except
  UserIsAdmin := false;
end;

:)


 
Игорь Шевченко ©   (2004-03-18 17:27) [3]

const
 SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority =
   (Value: (0, 0, 0, 0, 0, 5));
 SECURITY_BUILTIN_DOMAIN_RID = $00000020;
 DOMAIN_ALIAS_RID_ADMINS = $00000220;

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;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if isAdmin then
   ShowMessage("Logged in as Administrator");
end;



http://www.swissdelphicenter.ch/torry/showcode.php?id=189

serge35   (18.03.04 17:12)

Скучно, да ?


 
Serg Guk   (2004-03-19 15:26) [4]

Благодарю, Игорь, как раз то что надо..  :))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
1-1079546847
Chcnger
2004-03-17 21:07
2004.04.04
Опять факториал


8-1070016737
X-Disa
2003-11-28 13:52
2004.04.04
Размер картинки


7-1076689383
DelphiN!
2004-02-13 19:23
2004.04.04
Отсылка сообщения безоконной программе


1-1079177704
Vilux
2004-03-13 14:35
2004.04.04
Динамическое создание компонента


1-1079668537
Dimm
2004-03-19 06:55
2004.04.04
Как посчитать общую сумму часов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский