Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо