Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Права пользователя при запуске программы   Найти похожие ветки 

 
TAndrew ©   (2002-08-28 19:04) [0]

Как узнать, с какими правами запущена программа - администратор, пользователь (например, дозволено ли изменение ключей реестра)


 
Eugene ©   (2002-08-30 01:22) [1]


Function FssIsAdmin: Boolean;
const
SECURITY_NT_AUTHORITY: SID_IDENTIFIER_AUTHORITY = (Value: (0,0,0,0,0,5)); // ntifs
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;
var
hAccessToken : THandle;
ptgGroups : PTokenGroups;
dwInfoBufferSize : DWORD;
psidAdministrators : PSID;
x : Integer;
bSuccess : BOOL;
begin
Result:=False;
try
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);
try
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;
finally
FreeMem(ptgGroups);
end;
end;
except
Result:=False;
end;
end;


 
ZZ ©   (2002-08-30 04:28) [2]

с какими правами запущена программа
и
например, дозволено ли изменение ключей реестра
2 разные вещи!! На первый вопрос ответили. На второй - проще всего попытатся прочитать/изменить



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

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-11146
opoloXAI
2002-10-24 13:05
2002.11.04
Сообщение об ошибке при показе MessageDlg.


4-11552
SPeller
2002-09-19 04:23
2002.11.04
Как добавить свой пункт к стандартному меню Edit а ??


1-11156
AlexeyMir
2002-10-24 14:12
2002.11.04
Hint на Scrole


1-11329
Lord Vader
2002-10-24 01:41
2002.11.04
Текстовый редактор


14-11488
Beginner-Designer
2002-10-16 20:37
2002.11.04
ПРо провайдеров, которые дают доступ через guest-guest