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

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

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

Здравствуйте, Програмеры.

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

Ответить   Sun, 30 Jan 2005 15:34:29 +0600 (#307513)

 

Ответы:

Hello janalex,

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

Ответить   Вадим Шешунов Mon, 31 Jan 2005 12:55:12 +0200 (#308029)

 

Здравствуйте, Вадим.

Вы писали 31 января 2005 г., 16:55:12:

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

Ответить   Tue, 1 Feb 2005 00:34:15 +0600 (#308069)

 

Hello janalex,

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

Ответить   Вадим Шешунов Tue, 1 Feb 2005 00:27:12 +0200 (#308138)

 

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

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

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

Ответить   Tue, 1 Feb 2005 00:28:33 +0500 (#308136)

 

Факт, ждет. Однако выйти из него можно тем же способом, который
использует 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

Ответить   Tue, 1 Feb 2005 10:22:34 +0300 (#308270)

 

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

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

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

Ответить   Tue, 1 Feb 2005 21:19:47 +0500 (#308588)

 

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

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

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

Ответить   Tue, 1 Feb 2005 19:01:17 +0600 (#308410)

 

Насколько я знаю, другого варианта все равно нет -
либо таймер, либо аппаратное событие.

Не совсем понятно, что требует пояснений. Таймер создается
вызовом 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

Ответить   Tue, 1 Feb 2005 17:51:18 +0300 (#308442)

 

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

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

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

Ответить   Tue, 1 Feb 2005 22:52:49 +0600 (#308518)

 

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

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

Сорри за повторение, но возникли проблеммы:

1 PBT_APMSUSPEND и PBT_APMRESUMESUSPEND Отсутствуют в Delphi;
2 Как конвертировать в результат оброботчика время возвращаемое "now"?

Ответить   Fri, 4 Feb 2005 21:42:21 +0600 (#310446)

 

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

Ответить   Mon, 7 Feb 2005 10:28:00 +0300 (#311712)

 

Здоровеньки булы, janalex!

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

Единственный способ который я знаю - создать задачу в "Назначенных
заданиях" с включенной галкой "Разбудить компьютер для запуска этого
задания", но это надо вручную т.к. и команда at, и NetScheduleJobAdd
(на котором at основана) не позволяют выставить эту галку, если
найдешь API или скрипт которые это позволяют - флаг тебе в руки.

PS: Программы в ждущем режиме не выполняются. И лично у меня даже кулер
на проце останавливается - ни о каких программах не может быть и речи.

Ответить   Mon, 31 Jan 2005 18:16:19 +0500 (#308030)

 

Здравствуйте !


Есть функции:

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

Ответить   Sun, 30 Jan 2005 23:34:07 +0300 (#308032)

 

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

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


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

Ответить   Tue, 1 Feb 2005 18:54:44 +0600 (#308409)