![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Общие вопросы [D7, WinXP]
sam07 © (2005-10-02 20:26:00)с помощью какой команды можно перезагрузить систему в delphi 7
HF-Trade (2005-10-03 03:09:00) [1]Procedure PowerOff(Flags: UINT);
var
tokenPriv: TTokenPrivileges;
tokenHandle: THandle;
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) and
((Flags and (EWX_POWEROFF or EWX_REBOOT or EWX_SHUTDOWN)) <> 0) then
begin
if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,
TokenHandle) then begin
if LookupPrivilegeValue(nil,'SeShutdownPrivilege',
TokenPriv.Privileges[0].LUID) then
begin
TokenPriv.PrivilegeCount:=1;
TokenPriv.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
if not AdjustTokenPrivileges(TokenHandle,false,TokenPriv,0,
TTokenPrivileges(nil^),DWORD(nil^)) then exit;
end;
end;
end;
ExitWindowsEx(Flags, 0);
end;
procedure TForm1.Button1Click(Sender: TObject);
Begin
PowerOff(EWX_ShutDown); //Флаг для выкл питания.
end;
// Флаги -
//EWX_POWEROFF
//EWX_REBOOT
//EWX_SHUTDOWN
begin...end (2005-10-02 20:29:00) [2]См. в справке описание API-функции ExitWindowsEx.