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

Тема в разделе ".NET", создана пользователем Tolias, 16 ноя 2011.

  1. Tolias

    Tolias Гость

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

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

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Для оконного WinForms-приложения можно переопределить WndProc примерно следующим образом:
    Код (Text):
    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);
    }
    }
    Подробности можно найти тут
     
Загрузка...

Поделиться этой страницей