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

Вниз

Как перевести компьютер в ждущий режим?   Найти похожие ветки 

 
Wolfram ©   (2005-09-30 22:09) [0]

Как перевести компьютер в ждущий и спящий режимы под WinXP? Функция systemparametersinfo здесь не работает.


 
Wolfram ©   (2005-10-01 07:44) [1]

Народ, неужели никто не знает, как это сделать???


 
Antonn ©   (2005-10-01 08:50) [2]

я так:

procedure NTWait;
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;
   tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
   if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
     SetSystemPowerState(true, true);
 end;
end;


 
Antonn ©   (2005-10-01 08:50) [3]

аге, спащий забыл:

procedure NTSleep;
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
     SetSystemPowerState(true, true);
 end;
end;


 
Pass[word] ©   (2005-10-01 08:52) [4]

Я знаю как. Молотком!


 
Antonn ©   (2005-10-01 15:10) [5]

Pass[word] ©   (01.10.05 8:52) [4]
так только выключить можно.


 
Wolfram ©   (2005-10-01 21:12) [6]

Чё-то я не понял - функции NTWait и NTSleep абсолютно одинаковые и переводят комп в ждущий режим. А как со спящим?


 
Antonn ©   (2005-10-02 05:27) [7]

Wolfram ©   (01.10.05 21:12) [6]
ой. точно одинаковые...

var
  _SetSuspendState: function (Hibernate, ForceCritical, DisableWakeEvent: BOOL): BOOL
  stdcall = nil;

function LinkAPI(const module, functionname: string): Pointer; forward;

function SetSuspendState(Hibernate, ForceCritical, DisableWakeEvent: Boolean): Boolean;
begin
  if not Assigned(_SetSuspendState) then
    @_SetSuspendState := LinkAPI("POWRPROF.dll", "SetSuspendState");
  if Assigned(_SetSuspendState) then
    Result := _SetSuspendState(Hibernate, ForceCritical,
      DisableWakeEvent)
  else
    Result := False;
end;

function LinkAPI(const module, functionname: string): Pointer;
var hLib: HMODULE;
begin
  hLib := GetModulehandle(PChar(module));
  if hLib = 0 then
    hLib := LoadLibrary(PChar(module));
  if hLib <> 0 then
    Result := getProcAddress(hLib, PChar(functionname))
  else
    Result := nil;
end;

юзание - SetSuspendState(True, False, False);



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
14-1131789566
oSa
2005-11-12 12:59
2005.12.04
DSA


14-1131535569
Левощенко
2005-11-09 14:26
2005.12.04
Новочеркасск-1962


14-1131709129
Макс1
2005-11-11 14:38
2005.12.04
ОС Singularity


2-1132210863
diwww
2005-11-17 10:01
2005.12.04
Ошибка при закрытии одной из одинаковых форм


8-1120822518
Pavel_Delphin
2005-07-08 15:35
2005.12.04
Обработка видеосигнала.