![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перезагрузить ЛЮБУЮ винду??? [D7, Win2k]
Batoon © (2004-03-18 12:16:00)Подскажите пожалуйста!!!
Как перезагрузить Win98/me/w2k/xp/2003
Смотрел разные ФАКИ, но, например W2K не перезагружается
Exitwindowsex на нем не работает
Мож че другое есть???
Kalmykov Sergei (2004-03-23 21:21:00) [1]Работает в XP, а в NT не знаю, по идее должно работать.
function WinExit(flags: integer): boolean;
function SetPrivilege(privilegeName: string; enable: boolean): boolean;
var tpPrev,
tp : TTokenPrivileges;
token : THandle;
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(tpPrev), tpPrev,dwRetLen);
end;
CloseHandle(token);
end;
begin
if SetPrivilege('SeShutdownPrivilege', true) then begin ExitWindowsEx(flags, 1);
SetPrivilege('SeShutdownPrivilege', false)
end;
end;
вызываем так
WinExit(EWX_SHUTDOWN or EWX_POWEROFF);- выключаем комп
WinExit(EWX_REBOOT);- перезагружаем комп
Удачи.
Gero (2004-03-22 21:42:00) [2]Reset. Перезагрузит любую винду и не только.
KADAN (2004-03-22 19:29:00) [3]http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=15-988621105
Александр1 (2004-03-22 18:24:00) [4]Нужно с начало определить тип windows, и подобрать к ней свой способ перезагрузки.
Batoon (2004-03-18 13:28:00) [5]THANKS большое!!!
BiN (2004-03-18 12:42:00) [6]в W2k для этого нужно включить привилегию SeShutdownPrivilege