![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Windows NT [D6, NT4, Win2k]
cherepovets © (2002-08-12 12:13:00)Как из под NT выключить компьютер
Aydar (2002-08-12 13:20:00) [1]procedure ShutdownNT;
var
hToken:THandle;
tkp:TTokenPrivileges;
ReturnLength:Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil,"SeShutdownPrivilege",tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken,False,tkp,0,nil,ReturnLength) then ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);
end;
end;
Aydar (2002-08-12 13:18:00) [2]procedure ShutdownNT;
var
hToken:THandle;
tkp:TTokenPrivileges;
ReturnLength:Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken) then
begin
LookupPrivilegeValue(nil,"SeShutdownPrivilege",tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken,False,tkp,0,nil,ReturnLength) then ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);
end;
end;