![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
win 2000 [D5, WinME]
alex16 © (2001-12-01 06:12:00)Как выключить или перезагрузить компьютер в win2000
AlexKniga (2001-12-02 16:03:00) [1]SHExitWindowsEx(x); //из shell32.dll
Где x смотри в MSDN ID: Q234216
А также x=-1 перегрузить DeskTop.
В NT незабудь получить привелегии.
(с)DimkaMaslov
if WinNT 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;
Pat (2001-12-02 14:05:00) [2]Сам не пробовал под 2000, но говорят, что работает...
RUNDLL.EXE user,ExitWindows - выключить
RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2 - перезагрузить
Вызывается как EXE"шник. В 98 и WinME работает (проверено)
Пример:
winexec("rundll.exe user,exitwindows",sw_restore);
Tosov (2001-12-01 16:10:00) [3]Попробуй поискать по этому сайту - может найдешь чего (зря чтоли люди поиск делали) или здесь посмотри (для WinNT/Win2000)
http://delphi.xonix.ru/faq/system/shutdown01.shtml
http://delphi.xonix.ru/faq/system/shutdown02.shtml