Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2005-02-01

Re[2]: Delphi Жлущий режим

Здоровеньки булы, Емельянов Алексей!

1 февраля 2005 г., вторник, 12:22:34 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Delphi Жлущий режим",
в котором сообщалось следующее:

ЕА> Факт, ждет. Однако выйти из него можно тем же способом, который
ЕА> использует Task Scheduler. А именно, используя функции
ЕА> CreateWaitableTimer и SetWaitableTimer (с параметром
ЕА> fResume равным TRUE).

О! Точно! Я просто когда искал - до этой финкции не дошел, теперь
начинаю вспоминать что где-то такое видел.

   2005-02-01 21:52:51 (#308588)

Re[5]: Delphi Жлущий режим

Здравствуйте, Емельянов.

Вы писали 1 февраля 2005 г., 20:51:18:

ЕА> Не совсем понятно, что требует пояснений. Таймер создается
ЕА> вызовом CreateWaitableTimer(NULL,TRUE,NULL),
ЕА> когда он будет не нужен, объект освобождается
ЕА> функцией CloseHandle().
ЕА> Ловится сообщение WM_POWERBROADCAST с параметром
ЕА> PBT_APMSUSPEND, извещающим о переходе в ждущий
ЕА> режим. В обработчике с помощью функции SystemTimeToFileTime()
ЕА> или каким-нибудь другим способом формируется время
ЕА> пробуждения и для запуска таймера вызывается
ЕА> SetWaitableTimer(hTimer,&nTime,0,TimerProc,NULL,TRUE).
ЕА> Опять же на обработчике WM_POWERBROADCAST с параметром
ЕА> PBT_APMRESUMESUSPEND нужно деактивировать таймер,
ЕА> на случай, если пробуждение вызвано
ЕА> действиями пользователя.
ЕА> Наконец, на обработчике TimerProc может потребоваться вызвать
ЕА> SetThreadExecutionState, чтобы известить систему о том,
ЕА> что она зачем-либо нужна. Например, указание флага
ЕА> ES_USER_PRESENT не позволит снова уснуть.

Спасибо ! Какраз то что недо.
тема закрыта ))

   2005-02-01 20:00:20 (#308518)

Re[4]: Delphi Жлущий режим

АТ> Программа в ждущем режиме НЕ работает, она ждет :)
> Мне не обязательно указывать системе "прекратить ждущий режим
> немедленно", достаточно предупредить её что в N часов
> (или через N часов) необходимо выйти из ждущего (хорошо
> бы и спящего режима)
> пока что более менее удобоваримый вариант
> CreateWaitableTimer и SetWaitableTimer.
Насколько я знаю, другого варианта все равно нет -
либо таймер, либо аппаратное событие.

> Если не в лом можно пояснения, т.к. после перевода
> Help'a мало что прояснилось.
>
Не совсем понятно, что требует пояснений. Таймер создается
вызовом CreateWaitableTimer(NULL,TRUE,NULL),
когда он будет не нужен, объект освобождается
функцией CloseHandle().
Ловится сообщение WM_POWERBROADCAST с параметром
PBT_APMSUSPEND, извещающим о переходе в ждущий
режим. В обработчике с помощью функции SystemTimeToFileTime()
или каким-нибудь другим способом формируется время
пробуждения и для запуска таймера вызывается
SetWaitableTimer(hTimer,&nTime,0,TimerProc,NULL,TRUE).
Опять же на обработчике WM_POWERBROADCAST с параметром
PBT_APMRESUMESUSPEND нужно деактивировать таймер,
на случай, если пробуждение вызвано
действиями пользователя.
Наконец, на обработчике TimerProc может потребоваться вызвать
SetThreadExecutionState, чтобы известить систему о том,
что она зачем-либо нужна. Например, указание флага
ES_USER_PRESENT не позволит снова уснуть.

Номер выпуска : 3995
Возраст листа : 499 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/308442
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-02-01 17:52:26 (#308442)

Re[3]: Delphi Жлущий режим

Здравствуйте, Александр.

Вы писали 1 февраля 2005 г., 1:28:33:

АТ> Программа в ждущем режиме НЕ работает, она ждет :)

Мне не обязательно указывать системе "прекратить ждущий режим
немедленно", достаточно предупредить её что в N часов (или через N
часов) необходимо выйти из ждущего (хорошо бы и спящего режима) пока
что более менее удобоваримый вариант CreateWaitableTimer и
SetWaitableTimer. Если не в лом можно пояснения, т.к. после перевода
Help'a мало что прояснилось.

   2005-02-01 16:20:40 (#308410)

Re[2]: Delphi Жлущий режим

Здравствуйте, Victor.

Вы писали 31 января 2005 г., 2:34:07:

VVV> BOOL SetSuspendState (
VVV> BOOL Hibernate,
VVV> BOOL ForceCritical,
VVV> BOOL DisableWakeEvent
VVV> );

VVV> BOOL SetSystemPowerState(
VVV> BOOL fSuspend,
VVV> BOOL fForce
VVV> );

VVV> Должно быть, их и надо использовать. В подробности
VVV> пока не вдавался (поздно уже :).

Вообщето SetSuspendState вообще нет, по крайней мере ни в справке, ни
в одном файле делфи. А SetSystemPowerState не выводит, а вводит в
ждущий режим.

VVV> --
VVV> С уважением, Вахтуров Виктор.

   2005-02-01 16:20:28 (#308409)

Re: Delphi Жлущий режим

j>> Подскажите, как вывести компютер из ждущего режима програмным методом.

> Люди! Вы гоните :)
> Программа в ждущем режиме НЕ работает, она ждет :)
>
Факт, ждет. Однако выйти из него можно тем же способом, который
использует Task Scheduler. А именно, используя функции
CreateWaitableTimer и SetWaitableTimer (с параметром
fResume равным TRUE).

Источник - 'Platform SDK\Power Management'.
Эти функции есть начиная с Win98.

Номер выпуска : 3992
Возраст листа : 499 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/308270
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-02-01 10:24:51 (#308270)

Re[3]: Delphi Жлущий режим

Hello janalex,

ВШ>> Hello janalex,

j>>> Подскажите, как вывести компютер из ждущего режима програмным методом.

ВШ>> Думаю, нужно эмулировать нажатие клавишы в своем приложении.
ВШ>> Попробуй keybd_event(...).

j> Пробовал даже посылал винде сообшение что клавиши нажимаю, не
j> помогает.

Увы, не помогает - я тут сам эксперемент такой же поставил. I'm
Sorry!-((( Хотя казалось бы должно - комп ведь выходит из этого режима
при нажатии клавы. Значит, остается попрбовать то, о чем говорил
наш модератор - SetSystemPowerState. Авось поможет.

   Вадим Шешунов 2005-02-01 01:25:46 (#308138)

Re[2]: Delphi Жлущий режим

Здоровеньки булы, Вадим Шешунов!

31 января 2005 г., понедельник, 15:55:12 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Delphi Жлущий режим",
в котором сообщалось следующее:

j>> Подскажите, как вывести компютер из ждущего режима програмным методом.

ВШ> Думаю, нужно эмулировать нажатие клавишы в своем приложении.
ВШ> Попробуй keybd_event(...).

Люди! Вы гоните :)
Программа в ждущем режиме НЕ работает, она ждет :)
Вы бы еще, на пару с Виктором :) , предложили такие варианты выхода из
спящего режима :))

   2005-02-01 01:17:45 (#308136)