![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перезагрузка компа, перез. системы и выключение компа как ? [D6, Win95/98, WinME, NT4, Win2k, WinXP]
maxim2 © (2002-12-12 21:20:00)Привет всем!
Программно как?
Anatoly Podgoretsky (2002-12-13 15:51:00) [1]Одного не достаточно, вот первый быстро найденный http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988621105&n=15
Udjin (2002-12-13 15:43:00) [2]Вообще вопросу этому давно пора в FAQ
Udjin (2002-12-13 15:42:00) [3]Не выключить его так под NT можно так
function ExitWindows(uFlags: UINT): BOOL;
var
ProcessHandle: THandle;
TokenHandle: THandle;
Luid: Int64;
Tkp: TTokenPrivileges;
BufferNeeded: DWORD;
begin
if Win32Platform=VER_PLATFORM_WIN32_NT then begin
ProcessHandle:=GetCurrentProcess;
OpenProcessToken(ProcessHandle, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, TokenHandle);
LookupPrivilegeValue(nil, "SeShutdownPrivilege", Luid);
Tkp.PrivilegeCount:=1;
Tkp.Privileges[0].Luid:=Luid;
Tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(TokenHandle, FALSE, Tkp, 0, nil, BufferNeeded);
end;
Result:=ExitWindowsEx(uFlags, $FFFF);
end;
Song (2002-12-12 22:19:00) [4]ExitWindowsEx()