Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.06;
Скачать: CL | DM;

Вниз

WinAPI как програмно выключить питание компьютера?   Найти похожие ветки 

 
Столков Иван   (2005-04-19 07:11) [0]

Подскажите пожалуйста, как правильно используется програмная функция для отключения питания компьютера. Пробовал :
ExitWindowsEX (EWX_POWEROFF or EWX_FORCE,0);, но вместо выключения происходит простая перезагрузка windows.


 
VNavigator ©   (2005-04-19 09:22) [1]

Выдрано из KOL&MCK:

function WindowsShutdown( const Machine : String; Force, Reboot : Boolean ) : Boolean;
var
 hToken: THandle;
 tkp, tkp_prev: TTokenPrivileges;
 dwRetLen :DWORD;
 Flags: Integer;
begin
 Result := False;
 if Integer( GetVersion ) < 0 then // Windows95/98/Me
 begin
   if Machine <> "" then Exit;
   Flags := EWX_SHUTDOWN;
   if Reboot then
     Flags := Flags or EWX_REBOOT;
   if Force then
     Flags := Flags or EWX_FORCE;
   Result := ExitWindowsEx( Flags, 0 );
   Exit;
 end;

 OpenProcessToken(GetCurrentProcess(),
                  TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
                  hToken);

 if not LookupPrivilegeValue(PChar(Machine), "SeShutdownPrivilege",
                             tkp.Privileges[0].Luid) then Exit;
 tkp_prev:=tkp;
 tkp.PrivilegeCount:=1;
 tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), tkp_prev,
dwRetLen);

 if not LookupPrivilegeValue(PChar(Machine),
                             "SeRemoteShutdownPrivilege",
                             tkp.Privileges[0].Luid)
    then
        Exit;

 tkp.PrivilegeCount:=1;
 tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, sizeof(tkp), tkp_prev,
dwRetLen);

 Result := InitiateSystemShutdown(PChar(Machine),nil, 0, Force, Reboot);
end;



Страницы: 1 вся ветка

Текущий архив: 2005.06.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-1116522957
YurikGL
2005-05-19 21:15
2005.06.06
Где убыточность?


14-1116511845
Alexander Panov
2005-05-19 18:10
2005.06.06
Кто прав, кто не прав? (О суде над офицерами ГРУ)


1-1116916439
Pavelkq
2005-05-24 10:33
2005.06.06
Переброска массивов


8-1108810484
avlan
2005-02-19 13:54
2005.06.06
Инструмент "Спрей"


1-1116872231
чяс
2005-05-23 22:17
2005.06.06
Как в run-time создать форму с кнопочками