Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 886

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Пишу программу, в которой хотел бы реализовать возможность, чтобы она после выполнения своей основной функции программа могла либо выключить компьютер, либо перейти в ждущий режим, либо в спящий. Выключение я уже реализовал. Проблемы с переходом в Ждущий и в Спящий режимы. Подскажите как это делается

Control Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Control (статус: Посетитель)
Вопрос отправлен: 3 сентября 2007, 03:02
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, Control!
Когда-то для Windows 9х была предусмотрена команда API:
SetSystemPowerState(Suspended, Mode: Boolean):boolean;
Suspended должно быть TRUE для ухода в спячку.
Mode - режим входа в спячку. Если TRUE, то всем программам и драйверам посылается Message PBT_APMSUSPEND, по которому они должны немедленно прекратить работу. Если FALSE, то посылается Message PBT_APMQUERYSUSPEND запроса на спячку, и драйвера в ответ могут дать отказ на включение режима спячки.
Возврат функции SetSystemPowerState: TRUE - режим включен.
Возможно она же работает и для ХР.
Есть еще функция ExitWindowsEx(EWX_Force or EWX_PowerOff or EWX_ShutDown, 0), у которой есть флаги EWX_xxxxxxxxx В хелпе они были описаны.

Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 6 сентября 2007, 12:03
Оценка за ответ: 4


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 3 сентября 2007, 10:15; участников в обсуждении: 2.
Control

Control (статус: Посетитель), 3 сентября 2007, 03:04 [#1]:

Хотел, еще уточнить, что мне достаточно будет знать как это делается для Windows XP
Евгений-1291

Евгений-1291 (статус: Посетитель), 3 сентября 2007, 10:15 [#2]:

Для спящего режима надо выполнить комманду : rundll32.exe powrprof.dll,SetSuspendState

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:32
Выполнено за 0.03 сек.