![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить права на действия в W2k [D5, Win2k, WinXP]
MCi © (2002-02-07 09:19:00)Как можно получить права в W2K на выключение компьютера?
Выполнение win32check(exitwindowsex(EWX_SHUTDOWN, 0)) приводит к сообщению, что прога не обладает правами на это действие!
drpass (2002-02-09 16:18:00) [1]
var
t: _Token_Privileges;
ht: cardinal;
rl: cardinal;
if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ht) then begin
LookupPrivilegeValue(nil, "SeShutdownPrivilege", t.Privileges[0].Luid);
t.PrivilegeCount:=1;
t.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(ht, false, t, 0, nil, rl);
end;
ExitWindowsEx(EWX_FORCE or EWX_REBOOT, 0);
Tosov (2002-02-08 21:51:00) [2]Вообще для "получения" прав используется AdjustTokenPrivileges (а за одно и OpenProcessToken посмотри)
Пример получения прав для перезагрузки/выключения компа
http://delphi.xonix.ru/faq/system/shutdown01.shtml