Проверено по Вин95 (M.Scheduler M_Scheduler@Yahoo.com)
if not ExitWindowsEx(EWX_Force or
EWX_PowerOff or
EWX_ShutDown, 0) then
MessageBox(0, 'An application refused to terminate', 'Win32', MB_OK);
Комментарий
от "Макса" (halyavshik@mailru.com)
небольшое дополнение как выключить
компутер с NT корректно компилируется в Delphi5 в 4 какие-то проблемы с
описанием констант привиллегий в других версиях Delphi не проверял:
program NTShutdown;
uses windows;
var
hToken: THandle;
tkp: TTokenPrivileges;
ReturnLength: Cardinal;
begin
if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
TOKEN_QUERY, hToken) then begin
LookupPrivilegeValue(nil, 'SeShutdownPrivilege',
tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1; // one privelege to set
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength)
then
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;
end.
|
Copyright ©
"Мастера DELPHI" E-mail:
delphi@mastak.com
http://www.delphimaster.ru |
Источник получения информации: http://www.delphimaster.ru
|