Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
1-1131075777
ali_tash
2005-11-04 06:42
2005.12.04
как определить оптимальный размер буфера для System.SetTextBuf


2-1131962581
JTAG
2005-11-14 13:03
2005.12.04
Краеведы , подскажите как сделать независимый таймер?


3-1129701482
Smolin
2005-10-19 09:58
2005.12.04
Очередность выполнения SQL запросов


14-1131903600
makvell
2005-11-13 20:40
2005.12.04
Мастерам


2-1132221469
IAMDANIL
2005-11-17 12:57
2005.12.04
DEBUG





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский