Главная страница
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.05 c
2-1132332848
Boble
2005-11-18 19:54
2005.12.04
FILTER по LOOKUP полям


3-1129836987
lra
2005-10-20 23:36
2005.12.04
выборка заданного количества записей с помощью sql-запроса


10-1108842379
Hmm
2005-02-19 22:46
2005.12.04
Чтение строк из существующего doc-файла (word)... как?


14-1131705105
CHES
2005-11-11 13:31
2005.12.04
Трудно быть йогом


3-1129698079
syte_ser78
2005-10-19 09:01
2005.12.04
многострочный DBGrid