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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.04.2017, 15:43   #1
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию Отловить событие отключения\выключения монитора

Как можно отловить событие при выключении или отключения монитора?
Чтобы при его отключении или выключении высвечивалось какое-то сообщение, так же и при его включении.
shvedoff вне форума Ответить с цитированием
Старый 17.04.2017, 15:49   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

SC_MONITORPOWER
p51x вне форума Ответить с цитированием
Старый 17.04.2017, 15:51   #3
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию

Это я понял
Но не понял как его применять?
В таймере? Что с чем сравнивать?
Не поделитесь кусочком кода?
Перерыл весь интернет, нашел только как отправить запрос на то или иное действие, а вот как его получить - нет.
shvedoff вне форума Ответить с цитированием
Старый 17.04.2017, 16:05   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Что значит как применять? Причем тут таймер? В функции окна ловить, как и остальные и реагировать.
p51x вне форума Ответить с цитированием
Старый 17.04.2017, 16:06   #5
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Что значит как применять? Причем тут таймер? В функции окна ловить, как и остальные и реагировать.
Можно кусок кода для примера?
shvedoff вне форума Ответить с цитированием
Старый 17.04.2017, 16:15   #6
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию

Код:
procedure TForm2.WMSysCommand (var Message: TMessage);
begin
if Message.WParam = SC_MONITORPOWER then
 begin
   ShowMessage('Test!');
  exit;
end;
inherited;
end;

Последний раз редактировалось Arigato; 28.04.2017 в 11:42.
shvedoff вне форума Ответить с цитированием
Старый 17.04.2017, 17:11   #7
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

если lparam =-1: монитор включен
если lparam = 2 : выключен
вроде так
BLACK_RAIN вне форума Ответить с цитированием
Старый 17.04.2017, 18:08   #8
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
если lparam =-1: монитор включен
если lparam = 2 : выключен
вроде так
Как это в коде обыграть?
shvedoff вне форума Ответить с цитированием
Старый 17.04.2017, 19:42   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

любым условным оператором - ифом или свитчем, например
p51x вне форума Ответить с цитированием
Старый 17.04.2017, 19:48   #10
shvedoff
Пользователь
 
Регистрация: 18.01.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
любым условным оператором - ифом или свитчем, например

Куда этот lParam вставлять?!


Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;

type
  TForm1 = class(TForm)
  private
    procedure WMSysCommand (var Message: TMessage); message WM_SYSCOMMAND;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.WMSysCommand (var Message: TMessage);
begin
 if Message.lParam = -1 then
   showMessage('Включен');
 inherited;

 if Message.lParam = 2 then
   showMessage('Выключен');
 inherited;
end;

end.

Последний раз редактировалось Arigato; 28.04.2017 в 11:42.
shvedoff вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WM_QueryEndSession отловить событие volod3000 Win Api 3 29.01.2015 20:23
Socket как отловить событие Disconnect Gregor C# (си шарп) 3 05.11.2014 13:31
как отловить событие hint? max89 Win Api 0 23.07.2010 19:08
Как отловить событие wm_paste? Romanych007 Помощь студентам 1 10.07.2010 20:42
Выключения монитора joker Компьютерное железо 2 25.01.2009 10:55