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

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

Выключить компьютер


AIK ©   (2007-09-02 23:29:00) 

Есть такая функция ExitwindowsEx с помошью которой можна выключить компьютер но на новых виндах XP она не помогает и для себя я использовал другой способ:
Procedure Power;
var f:text;
Begin
AssignFile(f,'power.bat');
rewrite(f);
Write(f,'shutdown -s');
CloseFIle(f);
ShellExecute(1, nil, 'power.bat', nil, nil, sw_restore);
Sleep(1000);
DeleteFile('power.bat');
end;

Ну так вот если кто знает более правильный способ может подскажет?


AIK   (2007-09-02 23:54:00) [1]

Спасибо!!!

> P.S. Использовать только в благих целях. :)

Можешь не волноваться.


KJ13   (2007-09-02 23:43:00) [2]

Вот один из вариантов выключения компьютера:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
 ph: THandle;
 tp, prevst: TTokenPrivileges;
 rl: DWORD;
begin
 OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or
   TOKEN_QUERY, ph);
 LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].Luid);
 tp.PrivilegeCount := 1;
 tp.Privileges[0].Attributes := 2;
 AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
 ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
end;


P.S. Использовать только в благих целях. :)


Наверх

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