Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2014, 12:31   #1
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию Выход из программы при входе в спящий режим

Привет всем!
Есть программа, нужно что бы когда компьютер переходил в спящий режим она закрывалась или как можно отследить событие перехода в сон? Это вообще реально сделать?
заранее спасибо.
Konstantin_ua вне форума Ответить с цитированием
Старый 08.08.2014, 12:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот только недавно была тема про сообщения. Кажись я там давал ссыль на чтиво по WM_POWER и иже с ними. Посмотри, буквально вчерашняя тема на форуме.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.08.2014, 13:07   #3
Konstantin_ua
Не судите строго
Форумчанин
 
Аватар для Konstantin_ua
 
Регистрация: 31.03.2011
Сообщений: 202
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вот только недавно была тема про сообщения. Кажись я там давал ссыль на чтиво по WM_POWER и иже с ними. Посмотри, буквально вчерашняя тема на форуме.
да нашел.спасибо.

Код:
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure WMPowerBroadcast(var MyMessage: TMessage); message WM_POWERBROADCAST;
end;

procedure TForm1.WMPowerBroadcast(var MyMessage: TMessage);
begin
if MyMessage.Msg = WM_POWERBROADCAST
then begin 
if (MyMessage.WParam = PBT_APMSUSPEND) or
  (MyMessage.WParam = PBT_APMSTANDBY) or 
    (MyMessage.WParam = PBT_APMQUERYSUSPEND) or
      (MyMessage.WParam = PBT_APMQUERYSTANDBY)
then begin
 MyMessage.Result := BROADCAST_QUERY_DENY; // Standby/запретить спящий
end;
end;
inherited; 
end;
код если кому надо
Konstantin_ua вне форума Ответить с цитированием
Старый 18.08.2014, 19:12   #4
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Решил ради интереса потестить данный код.
На всех четырёх PBT_ххх выдаёт ошибку "Undeclared identifier".
Подозреваю, что в USES надо указать библиотеку. Но вот какую, даже с гуглем не помогло. Или не в том проблема?
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Старый 18.08.2014, 20:06   #5
MODBUS
Пользователь
 
Регистрация: 01.08.2014
Сообщений: 66
По умолчанию

...модуль 'windows.pas', константы:
Код:
const
  { wParam for WM_POWERBROADCAST message  }

  {$EXTERNALSYM PBT_APMQUERYSUSPEND}
  PBT_APMQUERYSUSPEND             = $0000;
  {$EXTERNALSYM PBT_APMQUERYSTANDBY}
  PBT_APMQUERYSTANDBY             = $0001;
  {$EXTERNALSYM PBT_APMQUERYSUSPENDFAILED}
  PBT_APMQUERYSUSPENDFAILED       = $0002;
  {$EXTERNALSYM PBT_APMQUERYSTANDBYFAILED}
  PBT_APMQUERYSTANDBYFAILED       = $0003;
  {$EXTERNALSYM PBT_APMSUSPEND}
  PBT_APMSUSPEND                  = $0004;
  {$EXTERNALSYM PBT_APMSTANDBY}
  PBT_APMSTANDBY                  = $0005;
  {$EXTERNALSYM PBT_APMRESUMECRITICAL}
  PBT_APMRESUMECRITICAL           = $0006;
  {$EXTERNALSYM PBT_APMRESUMESUSPEND}
  PBT_APMRESUMESUSPEND            = $0007;
  {$EXTERNALSYM PBT_APMRESUMESTANDBY}
  PBT_APMRESUMESTANDBY            = $0008;
  {$EXTERNALSYM PBTF_APMRESUMEFROMFAILURE}
  PBTF_APMRESUMEFROMFAILURE       = $00000001;
  {$EXTERNALSYM PBT_APMBATTERYLOW}
  PBT_APMBATTERYLOW               = $0009;
  {$EXTERNALSYM PBT_APMPOWERSTATUSCHANGE}
  PBT_APMPOWERSTATUSCHANGE        = $000A;
  {$EXTERNALSYM PBT_APMOEMEVENT}
  PBT_APMOEMEVENT                 = $000B;
  {$EXTERNALSYM PBT_APMRESUMEAUTOMATIC}
  PBT_APMRESUMEAUTOMATIC          = $0012;
MODBUS вне форума Ответить с цитированием
Старый 19.08.2014, 09:38   #6
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Цитата:
Сообщение от MODBUS Посмотреть сообщение
...модуль 'windows.pas', константы...
Почти уверен был, что они в нём ))
Но ошибку ведь выдавало!
Короче, проблема вообще не проблема - Делфя у меня такая древняя, что в 'windows.pas' раздела WM_POWERBROADCAST нет вообще
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Старый 19.08.2014, 10:00   #7
MODBUS
Пользователь
 
Регистрация: 01.08.2014
Сообщений: 66
По умолчанию

...сочувствую, просто скопируйте константы. Да и в конце концов http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx поиском прошлись бы.

Цитата:
у меня такая древняя
да и у нас не XE. Будьте конкретнее.

Последний раз редактировалось MODBUS; 19.08.2014 в 10:03.
MODBUS вне форума Ответить с цитированием
Старый 19.08.2014, 10:03   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Вообще-то Messages в Д7. Или еще древнее?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.08.2014, 17:27   #9
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Цитата:
Сообщение от MODBUS Посмотреть сообщение
...сочувствую, просто скопируйте константы. Да и в конце концов http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx поиском прошлись бы.

да и у нас не XE. Будьте конкретнее.
Всё, что ни делается, - к лучшему ))
Другими словами, эта тема заставила меня поставить Делфю новее (выбор пал на 2007). А была Д6, она да -древнее чем Д7
Кстати, теперь данный код компилится на ура.
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спящий режим ололошенько Помощь студентам 21 10.09.2013 18:47
спящий режим в виндовс 7 west777 Помощь студентам 1 23.02.2011 12:53
Тормозит спящий режим Arigato Операционные системы общие вопросы 28 31.10.2010 11:27
Спящий режим на ноутбуке stenl1 Компьютерное железо 2 23.03.2010 16:22
программно отключить спящий режим furstenberg Win Api 0 18.01.2009 17:52