Delphi Жлущий режим
Здравствуйте, Програмеры.
Подскажите, как вывести компютер из ждущего режима програмным методом.
← Январь 2005 → | ||||||
1
|
2
|
|||||
---|---|---|---|---|---|---|
3
|
4
|
5
|
6
|
7
|
8
|
|
16
|
||||||
17
|
19
|
20
|
21
|
22
|
23
|
|
24
|
||||||
За последние 60 дней ни разу не выходила
Сайт листа:
http://codeguru.ru
Открыт:
21-09-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.prog.prog-list@subscribe.ru
Адрес
модератора: comp.soft.prog.prog-owner@subscribe.ru
Здравствуйте, Програмеры.
Подскажите, как вывести компютер из ждущего режима програмным методом.
Здравствуйте, Вадим.
Вы писали 31 января 2005 г., 16:55:12:
Пробовал даже посылал винде сообшение что клавиши нажимаю, не
помогает.
Hello janalex,
Увы, не помогает - я тут сам эксперемент такой же поставил. I'm
Sorry!-((( Хотя казалось бы должно - комп ведь выходит из этого режима
при нажатии клавы. Значит, остается попрбовать то, о чем говорил
наш модератор - SetSystemPowerState. Авось поможет.
Здоровеньки булы, Вадим Шешунов!
31 января 2005 г., понедельник, 15:55:12 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Delphi Жлущий режим",
в котором сообщалось следующее:
Люди! Вы гоните :)
Программа в ждущем режиме НЕ работает, она ждет :)
Вы бы еще, на пару с Виктором :) , предложили такие варианты выхода из
спящего режима :))
Факт, ждет. Однако выйти из него можно тем же способом, который
использует 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
Здоровеньки булы, Емельянов Алексей!
1 февраля 2005 г., вторник, 12:22:34 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Delphi Жлущий режим",
в котором сообщалось следующее:
О! Точно! Я просто когда искал - до этой финкции не дошел, теперь
начинаю вспоминать что где-то такое видел.
Здравствуйте, Александр.
Вы писали 1 февраля 2005 г., 1:28:33:
Мне не обязательно указывать системе "прекратить ждущий режим
немедленно", достаточно предупредить её что в 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
Здравствуйте, Емельянов.
Вы писали 1 февраля 2005 г., 20:51:18:
Спасибо ! Какраз то что недо.
тема закрыта ))
Здравствуйте, Емельянов.
Вы писали 1 февраля 2005 г., 20:51:18:
Сорри за повторение, но возникли проблеммы:
1 PBT_APMSUSPEND и PBT_APMRESUMESUSPEND Отсутствуют в Delphi;
2 Как конвертировать в результат оброботчика время возвращаемое "now"?
PBT_APMQUERYSUSPEND = $0000;
PBT_APMQUERYSTANDBY = $0001;
PBT_APMQUERYSUSPENDFAILED = $0002;
PBT_APMQUERYSTANDBYFAILED = $0003;
PBT_APMSUSPEND = $0004;
PBT_APMSTANDBY = $0005;
PBT_APMRESUMECRITICAL = $0006;
PBT_APMRESUMESUSPEND = $0007;
PBT_APMRESUMESTANDBY = $0008;
PBT_APMBATTERYLOW = $0009;
PBT_APMPOWERSTATUSCHANGE = $000A;
PBT_APMOEMEVENT = $000B;
PBTF_APMRESUMEFROMFAILURE = $00000001;
Функции DecodeDate,DecodeTime.
Номер выпуска : 4014
Возраст листа : 505 (дней)
Количество подписчиков : 522
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/311712
Получить правила : 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
Здоровеньки булы, janalex!
30 января 2005 г., воскресенье, 14:34:29 (GMT+05:00), пришел ко мне
почтальон Почкин и всучил письмо с пометкой "Delphi Жлущий режим",
в котором сообщалось следующее:
Единственный способ который я знаю - создать задачу в "Назначенных
заданиях" с включенной галкой "Разбудить компьютер для запуска этого
задания", но это надо вручную т.к. и команда at, и NetScheduleJobAdd
(на котором at основана) не позволяют выставить эту галку, если
найдешь API или скрипт которые это позволяют - флаг тебе в руки.
PS: Программы в ждущем режиме не выполняются. И лично у меня даже кулер
на проце останавливается - ни о каких программах не может быть и речи.
Здравствуйте !
Есть функции:
BOOL SetSuspendState (
BOOL Hibernate,
BOOL ForceCritical,
BOOL DisableWakeEvent
);
(начиная с Win98)
и
BOOL SetSystemPowerState(
BOOL fSuspend,
BOOL fForce
);
(начиная с Win95).
В Windows 95/98/Me первый параметр игнорируется.
Должно быть, их и надо использовать. В подробности
пока не вдавался (поздно уже :).
--
С уважением, Вахтуров Виктор.
Номер выпуска : 3987
Возраст листа : 498 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/308032
Получить правила : 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
Здравствуйте, Victor.
Вы писали 31 января 2005 г., 2:34:07:
Вообщето SetSuspendState вообще нет, по крайней мере ни в справке, ни
в одном файле делфи. А SetSystemPowerState не выводит, а вводит в
ждущий режим.
Hello janalex,
Думаю, нужно эмулировать нажатие клавишы в своем приложении.
Попробуй keybd_event(...).