Форум: "WinAPI";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
ВнизКак узнать что превилигия включена или выключена? Найти похожие ветки
← →
NikNet © (2005-08-23 21:02) [0]Как узнать что например DEBUG привилигия включена или выключена?
и ещё каку знать есть ли у пользователя эта привилигия или
надо добавить?
← →
alpet © (2005-08-23 21:08) [1]Может быть ПРИВИЛЕГИЯ?
← →
Zeqfreed © (2005-08-23 21:34) [2]NikNet © (23.08.05 21:02)
function SetPrivilege(const PrivilegeName : string; const Enable : boolean) : boolean;
var
tpOld, tp : TTokenPrivileges;
Token : Cardinal;
dwRetLen : DWORD;
begin
Result := False;
OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
tp.PrivilegeCount := 1;
if LookupPrivilegeValue(nil, PChar(PrivilegeName), tp.Privileges[0].LUID) then begin
if Enable then
tp.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED
else
tp.Privileges[0].Attributes:= 0;
dwRetLen := 0;
Result := AdjustTokenPrivileges(Token, False, tp, SizeOf(tpOld), tpOld, dwRetLen);
end;
CloseHandle(Token);
end;
Вот код из одного FAQ"а, почитай справку по ф-циям.
← →
BiN © (2005-08-24 09:21) [3]>>NikNet © (23.08.05 21:02)
Как узнать что например DEBUG привилигия включена или выключена?
и ещё каку знать есть ли у пользователя эта привилигия или
надо добавить?
Для получения списка привилегий, ассоциированных с учетной записью, используется LsaEnumerateAccountRights.
Для получения списка привилегий, ассоциированных с маркером процесса, - GetTokenInformation.
>>Zeqfreed © (23.08.05 21:34) [2]
...
Result := AdjustTokenPrivileges(...
Список привилегий "закрепляется" за маркером при его создании.
Так вот, если в маркере будет отсутствовать целевая привилегия, и мы попытаемся установить ее в состояние "enabled", то AdjustTokenPrivileges вернет True, а привилегия при этом не будет установлена. Для того, чтобы проверить установлена привилегия, нужно проверять еще GetLastError на равенство ERROR_SUCCESS.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.044 c