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

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

Power OFF [D6, Win2k]


Shrek ©   (2002-10-07 22:31:00) 

Подскажите пожалуйста, как завершить роботу винды так шоб отключилось питание.
Зничит, пробывал
ExitWindowsEx(EWX_SHUTDOWN, 0);- делает рестарт.

ShellExecute(Application.Handle,
Pchar("Open"),Pchar("C:\Windows\Rundll32.exe"),
Pchar("krnl386.exe,exitkernel"),
Pchar("C:\Windows"),SW_SHOWNORMAL);
- в ATX не работает. Млжет у кого есть идеи на щёт этого. Спасибо.


kerrik   (2002-10-07 23:36:00) [1]

Этот код должен работать и в Win2000

var
What: Cardinal;
//-----------------------------------------
What := EWX_FORCE+EWX_SHUTDOWN+EWX_POWEROFF;
if ExitWindowsEx(What,0)=false then
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(What, 0);
end;
end;


Наверх

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