![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выключить компьютер
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. Использовать только в благих целях. :)