Autor Téma: Detekce sleep režimu  (Přečteno 278 krát)

Offline soko.ban

  • Nováček
  • *
  • Příspěvků: 19
  • Karma: 2
    • Verze Delphi: 10.4.2
Detekce sleep režimu
« kdy: 06-10-2021, 10:18:10 »
Potřeboval bych reagovat na přechod počítače do sleep režimu.

K tomu slouží WM_POWERBROADCAST a je toho plnej internet. Přes WParam se předává id události. Stačí si odchytit PBT_APMSUSPEND a je hotovo.
https://docs.microsoft.com/en-us/windows/win32/power/wm-powerbroadcast

Jenže mi to funguje pouze na pevným počítači. Jakmile jsem na notebooku, tak můžu "spát" jak chci, ručně, tlačítkem na ntb nebo mlátit víkem a nic. Tu událost prostě nedostanu.
Jediný na co mi ntb reaguje je PBT_POWERSETTINGCHANGE když vytáhnu nebo zapojím napájení ntb.
Zkoušel jsem googlit, ale nějak jsem neuspěl. Neřešil jste, pls, někdo něco podobnýho?


Edit: asi bude potřeba RegisterSuspendResumeNotification
« Poslední změna: 06-10-2021, 10:33:03 od soko.ban »

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3292
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Detekce sleep režimu
« Odpověď #1 kdy: 06-10-2021, 10:52:10 »
Edit: asi bude potřeba RegisterSuspendResumeNotification
Na ntb do toho vstupuje jeste hibernace, takze mozna jeste RegisterPowerSettingNotification

Offline soko.ban

  • Nováček
  • *
  • Příspěvků: 19
  • Karma: 2
    • Verze Delphi: 10.4.2
Re:Detekce sleep režimu
« Odpověď #2 kdy: 06-10-2021, 11:21:38 »