Определить Выход Из Спящего Режима

  • Автор темы Tolias
  • Дата начала
T

Tolias

Гость
#1
Как можно определить, что компьютер входит/выходит из спящего режима? Например, известная программа обмена быстрыми сообщениями QIP Infium перед переходом в спящий режим переводит все свои учетные записи в статус "Оффлайн". Как-то она определяет то, что система "пытается" уснуть, но только как?

P.S. Пишу прогу на C#.
 

LuMee

Well-Known Member
02.05.2006
477
0
#2
Для оконного WinForms-приложения можно переопределить WndProc примерно следующим образом:
Код:
public partial class Form1 : Form
{
const int WM_POWERBROADCAST = 0x218;
const int PBT_APMSUSPEND = 0x0004;
const int PBT_APMRESUMESUSPEND = 0x0007;

public Form1()
{
InitializeComponent();
}

protected override void WndProc(ref Message m)
{
if (m.Msg == WM_POWERBROADCAST)
{
if (m.WParam.ToInt32() == PBT_APMSUSPEND)
{
// Код, который нужно выполнить при засыпании
}
else if (m.WParam.ToInt32() == PBT_APMRESUMESUSPEND)
{
// Код, который нужно выполнить при пробуждении
}
}

base.WndProc(ref m);
}
}
Подробности можно найти тут