Главная страница
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.028 c
1-1116591481
Вопрошающий
2005-05-20 16:18
2005.06.06
Хинты для TStringGrid


3-1115148002
Genry
2005-05-03 23:20
2005.06.06
Упаковка и сборка мусора в Interbase


9-1110490520
SergeyR
2005-03-11 00:35
2005.06.06
User Interface


14-1116658704
Жека79
2005-05-21 10:58
2005.06.06
Помогите пожалуйста. У меня проблема с Explorer ом!


3-1114769959
DIS
2005-04-29 14:19
2005.06.06
Мастера помогите пожайлуста составить SQL запрос